正则表达式,又称正则表达式、正規表示法、常規表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器裡,正則表达式通常被用来检索、替换那些符合某个模式的文本。(来自[维基百科][])
[维基百科]: http://zh.wikipedia.org/zh/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F
正则表达式的一些规则可以参考这里:http://msdn.microsoft.com/zh-cn/library/vstudio/az24scfc.aspx#character_escapes
或者[维基百科]
正则表达式规则比较多,难以记忆,需要反复去实践方能掌握其精髓。本文收集一些例子,算是加以练习吧。
- 匹配空白行
表达式:
^\s*$
解释:^表示以某某字符开头,$表示以某某字符结尾,\s表示与任何空白字符匹配,*表示匹配前面的字符0次或多次。所以上面的表达式的意思是:匹配以空白字符开始,空白字符结尾的行,也就是空行了。
- 匹配Email地址
这个有点恐怖了。
我们知道Email的格式是:xxx@xxx.xxx
刚好以@符号为间隔点分成两部分。
第一行:[]表示匹配所包含的任意一个字符。所以[\w!#$%&'*+/=?^_`{|}~-]表示匹配其中的任意一个字符。\w与任何单词字符匹配,
+号表示匹配上一个元素一次或多次。所以第一行的意思是匹配任意一个字符一次或多次。
第二行:(?:pattern)表示匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
第三行:@符号
第四行:必须有一个.号
第五行:匹配任意个单词字符,单词字符间可以有-号。
- 匹配中文字符
[\u4e00-\u9fa5]
\u表示使用十六进制表示形式匹配 Unicode 字符(由 nnnn 正确表示的四位数)。我们可以在 http://unicode-table.com/en 查到所有字符的Unicode码。比如\u4e00代表中文字符一
。
- 匹配国内电话号码
\d{3}-\d{8}|\d{4}-\{7,8}
{ n }: 匹配上一个元素恰好 n 次。
{ n ,}: 匹配上一个元素至少 n 次。
{ n , m }: 匹配上一个元素至少 n 次,但不多于 m 次。
|: 匹配以竖线 (|) 字符分隔的任何一个元素。
- 匹配腾讯QQ号
[1-9][0-9]{4,}
腾讯QQ号从10000开始
- 匹配身份证号码
^\d{17}(\d|X)$
总共18位,最后一位可以是数字或者X字符。
后续补充。
网友评论