匹配纯文本
content:
Hello, my name is Ben. Please visit my website at http://www.forta.com/.
regex:Ben
result:在文本内容中找到了一个匹配项
content:
Hello, my name is Ben. Please visit my website at http://www.forta.com/.
regex:my
result:在文本内容中找到了两个匹配项
匹配任意字符
.字符可以匹配任何单个的字符、 字母、 数字甚至是.字符本身。
content:
sales.xls sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
regex:sales.
result:找到了sales.xls、sales1.xls、sales2.xls、sales3.xls
content:
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
regex:.a.
result:找到了七个匹配结果
匹配特殊字符
特殊字符需要用\进行转义
content:
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls
regex:.a.\.xls
result:找到了na1.xls、na2.xls、sa1.xls
匹配一组字符
可以使用元字符[ 和 ]来定义一个字符集合
content:
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls na1.xls na2.xls sa1.xls ca1.xls usa1.xls
regex:[ns]a.\.xls
result:找到了na1.xls、na2.xls、sa1.xls、usa1.xls
content:
The phrase "regular expression" is often abbreviated as RegEx or regex.
regex:[Rr]eg[Ee]x
result:找到了RegEx、regex
content:
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls sam.xls na1.xls na2.xls sa1.xls ca1.xls
regex:[ns]a[0123456789]\.xls
简写形式:[ns]a[0-9].xls
result:找到了na1.xls、na2.xls、sa1.xls
取非匹配
用元字符^来表明你想对一个字符集合进行取非匹配
content:
sales1.xls orders3.xls sales2.xls sales3.xls apac1.xls europe2.xls sam.xls na1.xls na2.xls sa1.xls ca1.xls
regex:[ns]a[^0-9]\.xls
^的效果将作用于给定字符集合里的所有字符或字符区间, 而不是仅限于紧跟在^字符后面的那一个字符或字符区间
result:找到了sam.xls
使用元字符
content:
var myArray = new Array(); ... if (myArray[0] == 0) { ... }
regex:myArray\[0\]
result:找到了myArray[0]
匹配空白字符
content:
"101","Ben","Forta" "102","Jim","James" "103","Roberta","Robertson" "104","Bob","Bobson"
regex:\r\n\r\n
result:完全匹配
匹配数字
-
\d 任何一个数字字符(等价于[0-9])
-
\D 任何一个非数字字符(等价于0-9)
content:
var myArray = new Array(); ... if (myArray[0] == 0) { ... }
regex:myArray\[\d\]
result:找到了myArray[0]
匹配字母和数字
-
\w 任何一个字母数字字符(大小写均可) 或下划线字符(等价于[a-zA-Z0-9_])
-
\W 任何一个非字母数字或非下划线字符(等价于a-zA-Z0-9_)
content:
11213 A1C2E3 48075 48237 M1B4F2 90046 H1H2H2
regex:\w\d\w\d\w\d
result:找到A1C2E3、M1B4F2、H1H2H2
匹配空白字符
-
\s 任何一个空白字符(等价于[\f\n\r\t\v])
-
\S 任何一个非空白字符(等价于\f\n\r\t\v)
匹配十六进制或八进制数值
-
在正则表达式里, 十六进制(逢16进1) 数值要用前缀\x来给出。 比如说, \x0A对应于ASCII字符10(换行符) , 其效果等价于\n。
-
在正则表达式里, 八进制(逢8进1) 数值要用前缀\0来给出, 数值本身可以是两位或三位数字。 比如说, \011对应于ASCII字符9(制表符) , 其效果等价于\t。
匹配一个或多个字符
要想匹配同一个字符(或字符集合) 的多次重复,+匹配一个或多个字符
content:
Send personal email to ben@forta.com. For questions about a book use support@forta.com. Feel free to send unsolicited email to spam@forta.com (wouldn’t it be nice if it were that simple, huh?).
regex:\w+@\w+\.\w+
result:找到所有的email地址
匹配零个或多个字符
使用*匹配零个或多个字符
content:
Hello .ben@forta.com is my email address.
regex:[\w.]+@[\w.]+\.\w+
result:找到.ben@forta.com
content:
Hello .ben@forta.com is my email address.
regex:\w+[\w.]*@[\w.]+\.\w+
result:找到 ben@forta.com
匹配零个或一个字符
使用?匹配零个或一个字符
content:
The URL is http://www.forta.com/, to connect securely use https://www.forta.com/ instead.
regex:http://[\w./]+
result:找到Ben Forta
content:
The URL is http://www.forta.com/, to connect securely use https://www.forta.com/ instead.
regex:http?://[\w./]+
result:找到Ben Forta
为重复匹配次数设定一个精确的值
如果你想为重复匹配次数设定一个精确的值, 把那个数字写在{和}之间即可 {2,4}语法还可以用来为重复匹配次数设定一个区间——也就是为重复匹配次数设定一个最小值和一个最大值。
content:
4/8/03 10-6-2004 2/2/2 01-01-01
regex:\d{1,2}[-\/]\d{1,2}[-\/]\d{2,4}
result:找到4/8/03、10-6-2004、2/2/2、01-01-01
{1, }语法的最后一种用法是给出一个最小的重复次数(但不必给出一个最大值) 。
content:
1001: $496.80 1002: $1290.69 1003: $26.43 1004: $613.42 1005: $7.61 1006: $414.90 1007: $25.00
regex:\d+: \$\d{3,}\.\d{2}
result:找到1001: $496.80、1002: $1290.69、1003: $26.43、1004: $613.42、1005: $7.61、1006: $414.90、1007: $25.00
content:
This offer is not available to customers living in <B>AK</B> and <B>HI</B>.
regex:<[Bb]>.*?</[Bb]>
result:找到AK and HI
单词边界
content:
The cat scattered his food all over the room.
regex:\bcat\b
result:找到cat
字符串边界
^用来定义字符串开头、$用来定义字符串结尾
content:
<?xml version="1.0" encoding="UTF-8" ?> <wsdl:definitions targetNamespace="http://tips.cf" xmlns:impl="http://tips.cf" xmlns:intf="http://tips.cf"
regex:^\s*<\?xml.*\?>
result:检测是否为XML文件