美文网首页
正则表达式-一些例子

正则表达式-一些例子

作者: josephok | 来源:发表于2013-08-22 12:18 被阅读103次

    正则表达式,又称正则表达式、正規表示法、常規表示法(英语: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字符。

    后续补充。

    相关文章

      网友评论

          本文标题:正则表达式-一些例子

          本文链接:https://www.haomeiwen.com/subject/xnvftttx.html