首页 / 正则 / 正则表达式中常用符号
正则表达式中常用符号
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了正则表达式中常用符号,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1655字,纯文字阅读大概需要3分钟。
内容图文
一:
正则在Perl、Py森、Ruby、Java等语言中文本的正则表达式几乎是一样的
以前常用到的在网上都有现成的例子拿来用,比如电话格式、邮箱格式之类的。
但是自然语言处理中往往会根据自己的需求来制定一个表达式,如果正则的知识掌握的比较片面,在编写自然语言处理程序时可能会觉得苦恼。
在《自然语言处理简明教程》里面有很系统的正则表达式教程,特意总结出来消化吸收。
二:
- 双斜线“//”
最简单的正则表达式就是这样的,由类似于/hello world /的正则来搜索语料库中包含子字符串“hello world”的任何字符串相匹配。/e/是可以匹配到字符串hello的。
- 中括号“[]”
[]会匹配其中的某一个字符。比如现在有嫌疑人,我们只知道他的名字可能是下面三种的某一种,分别是张伟、李伟或者黄伟。就可以使用/[张李黄]伟/来在人口数据库中匹配。
正则 |
匹配 |
模式例子 |
/[hH]/ello/
/[abc]/
/[1234567890]/ |
hello or Hello
‘a’或者’b’或者’c’
数字 |
“Hello!”
“happy~”
“1993年” |
- 连字符“-”
用来划定范围,表示某一范围内的任何字符。比如上个例子里面的/[1234567890]/是不是感觉很不方便。如果表示为/[0-9]/就会显得精简的多。
正则 |
匹配 |
模式例子 |
/[A-Z]/
/[a-z]/
/[0-9]/ |
大写字母
小写字母
数字 |
“Hello!”
“happy~”
“1993年” |
- 脱字符“^”
如果在方括号之后有脱字符“^”,对应的模式就是否定的。
正则 |
匹配 |
模式例子 |
/[^A-Z]/
/[^aA]/
/[0-9]/ |
非大写字母
既不是a也不是A
数字 |
“Hello!”
“happy~”
“1993年” |
- 问号“?”
比如我们在语料库中搜索诗人“李白”或者“李太白”,此时方括号就无法帮助我们,因为[]只能表示xx或者XX,但是不能表示有xx或者没xx。此时可以用“?”来表示前一个字符有或者无。
正则 |
匹配 |
/李太?白/
/times?/ |
“李白”或者“李太白”
time或者times |
- “Kleene*”
当正则表达式用来表示重复的字符时,比如在下载文件时,出现了下面的下载进度:
99.9%
99.99%
99.999%
99.9999%
……
此时我们可以用/9*/来表示重复了“0或者若干次”的字符“9”,因此想表示出现了一次或者多次的“9”,需要用/99*/。
因此/99\.99*%/可以用来表示上述进度条。(此处的“.”需要转译,因为我们不想让他表示为通配符)
稍微复杂点:
/[10]*/可以用来表示一个二进制串,比如“1010100001110001”
- “Kleene+”
但是我用/99*/来表示重复了“0或者若干次”的字符“9”时总觉得多写了一个“9”很不爽,这时有没有办法帮我们省掉多打一个“9”的时间呢?
/9+/就可以了~
因此使用/[10]+/来搜索语料中的二进制字符串看起来更顺手
- 通配符“.”
哎那个马什么民,帮我把袜子洗一下。
这样说话是很不礼貌的,但是当我们确实忘了别人名字时怎么办呢?
正则表达式同样可以解决这个问题。
正则里面有一个点号,通配符(/./)可以表示任何字符。
/马.民/可以在你的班级花名册里面搜索到所有叫“马X民”的人。
正则 |
匹配 |
模式例子 |
/[beg.n]/
|
beg和n中包含一个字符的字符串 |
begin,beg‘n,begun |
当/./和/*/或者/+/碰到时,什么神奇的事情会发生呢?
比如我们想知道有一天 马X民对黄伟做了什么事情,怎么写正则来在班级日志里面缩小搜索范围呢?
/马.民.+黄伟/就可以表示在一个长字符串里面,符合马X民bulabula黄伟的句子。
- l 锚号“^”和“$”
- l 词界“\b”“\B”
- l 析取符“|”
原文:http://www.cnblogs.com/kuqs/p/5727409.html
内容总结
以上是互联网集市为您收集整理的正则表达式中常用符号全部内容,希望文章能够帮你解决正则表达式中常用符号所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。