正则表达式

  1
在一文本中找 hi 可能 history 也会被找出 , 使用 /bhi/b 就能精确查找.
假如要找的是hi后面不远处跟着一个Lucy,如 hi my Lucy,应该用/bhi/b.*/bLucy/b
假如要找包含有 hi 的,如 Delphi7.0 ,应该用/whi/w
2.
.  匹配除了换行符以外的任意字符
+ 匹配重复1次或更多次
*  代表的不是字符,也不是位置,而是数量—它指定 * 前边的内容可以连续重复出现任意次,可以是0次
/d 匹配任意的一个数字
/d{5} 的意思是前面/d 必须连续重复匹配5次
/s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
/w 匹配字母或数字或下划线或汉字等
^匹配字符串的开始
$ 匹配字符串的结束
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
3
字符转义 使用 /

4 常用的反义代码
/W 匹配任意不是字母,数字,下划线,汉字的字符
/S 匹配任意不是空白符的字符
/D 匹配任意非数字的字符
/B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
5
替换(多规则)使用 |
6
指定子表达式(也叫做分组) 使用 ( )
从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推 引用时 /1  或 /2
/b(/w+)/b/s+/1/b可以用来匹配重复的单词,像go go, kitty kitty。首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(/b(/w+)/b),然后是1个或几个空白符(/s+),最后是前面匹配的那个单词(/1)。
你也可以自己指定子表达式的组名。要指定一个子表达式的组名,请使用这样的语法:(?<Word>/w+)(或者把尖括号换成'也行:(?'Word'/w+)),这样就把/w+的组名指定为Word了。要反向引用这个分组捕获的内容,你可以使用/k<Word>,所以上一个例子也可以写成这样:/b(?<Word>/w+)/b/s+/k<Word>/b
分组语法捕获(exp)匹配exp,并捕获文本到自动命名的组里(?<name>exp)匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)(?:exp)匹配exp,不捕获匹配的文本,也不给此分组分配组号零宽断言(?=exp)匹配exp前面的位置(?<=exp)匹配exp后面的位置(?!exp)匹配后面跟的不是exp的位置(?<!exp)匹配前面不是exp的位置注释(?#comment)这种类型的组不对正则表达式的处理产生任何影响,用于提供注释让人阅读


例子
/ba/w*/b匹配以字母a开头的单词
/d+匹配1个或更多连续的数字
/b/w{6}/b 匹配刚好6个字母/数字的单词
网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^/d{5,12}$
^/w+匹配一行的第一个单词(或整个字符串的第一个单词
/(?0/d{2}[) -]?/d{8} 这个表达式可以匹配几种格式的电话号码,像(010)88886666,或022-22334455,或02912345678等
<a[^>]+>匹配用尖括号括起来的以a开头的字符串
(/d{1,3}/.){3}/d{1,3}一个简单的IP地址匹配表达式
2[0-4]/d|25[0-5]|[01]?/d/d? 匹配不大于255的数字
/b(/w+)/b/s+/1/b可以用来匹配重复的单词,像go go, kitty kitty
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值