最简单的正则表达式

Posted kevin860

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最简单的正则表达式相关的知识,希望对你有一定的参考价值。

最简单的正则表达式

 

hi 能匹配的字符串(举例)hi him his this philips

只想要这个结果:hi [Hh]i (H|h)i 那么只匹配:hi

d+匹配数字串 匹配结果:10000,1234567,222222,8888888等等

""匹配一个单词的边界

    表达式:hi 能匹配:hi

"B"匹配一个单词的非边界

    表达式:BhiB 能匹配:hi this

"d"匹配一个数字字符

    表达式:d 能匹配:12345

"D"匹配一个非数字字符

    表达式:D 能匹配:A a

"w"匹配字母/数字/下划线

    表达式:w 能匹配:123abc_

"W"匹配除字母/数字/下划线

    表达式:W 能匹配:@#$%

"^"代表字符串的开头

    表达式:^hi 能匹配:hi him hidden

"$"代表字符串的结束

    表达式:hi$ 能匹配:hi chi Orochi

    表达式:^hi$ 只能匹配:hi

方括号"[ ]"匹配指定一堆字符中的一个。

    表达式:^[a-z]at$ 能匹配的字符串(举例):cat mat zat

    表达式:^[A-Za-z]at$ 能匹配的字符串(举例): Cat cat Mat

    表达式:^[aeiou]at$ 能匹配的字符串(举例):aat eat iat

方括号"[^]"不匹配这个集合中任何一个字符。

    表达式:^[^xyz]at$ 不能匹配的字符串:xat yat zat

 

 

"+"表示前一模式可以被重复1次或n次。

    表达式:^go+gle$ 能匹配的字符串(举例):gogle google goooooogle

    表达式:^g[aeiou]+gle$ 能匹配的字符串(举例):gagle gegle geagle geaeaipueagle

"*"表示前一模式可以被重复0次或n次。

    表达式:^go*gle$ 能匹配的字符串(举例):ggle google gooooogle

"?"表示前一模式可以被匹配0次或1次。

    表达式:^go?gle$ 能匹配的字符串(举例):ggle gogle

"{x}"表示前一模式模式可以被重复x次。

    表达式:^go{2}gle$ 能匹配的字符串 google

"{x,y}"表示前一模式模式可以被重复x到y次。

    表达式:^go{2,4}gle$ 能匹配的字符串(仅3个):google gooogle goooogle

"{x,}"表示前一字符模式可以被重复至少x次。

    表达式:^go{2,}gle$ 能匹配的字符串(举例):google gooogle gooooooogle

"( )"可以指定一堆字符来匹配一个模式。分组

    表达式:^(very )*large$ 能匹配的字符串(举例):large very very large very large

分支"|"用来指定几个规则只要匹配一个规则即成匹配。

    表达式:^com$|^org$|^net$ 能匹配的字符串(仅3个):com org net

    表达式:^abc.(com|org|net)$ 能匹配的字符串(仅3个):abc.com abc.org bac.net

如果要匹配"[""^""+"")"等等有特殊含义的字符,可以用""做转义。

    表达式:^1*(2+3)=6$ 能匹配的字符串(仅1个):1*(2+3)=6

其它

  • "^[A-Za-z]+$"  //由26个英文字母组成的字符串 
    "^[A-Z]+$"  //由26个英文字母的大写组成的字符串 
    "^[a-z]+$"  //由26个英文字母的小写组成的字符串 
    "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串 
    "^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
  • [u4e00-u9fa5] 汉字中的任意一个汉字
  • ^0d{2}-d{8}$
  • ^[0-9]*$
  • ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$

表达式 .* 就是单个字符匹配任意次,即贪婪匹配。 

表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.

(C# Regex中replace方法的简单实用)

            /*

              使用正则替换字符串

              */

            string msg = "你aaa好aa哈哈a";

msg = Regex.Replace(msg, @"a+", "A");

Console.WriteLine(msg); //你A好A哈哈A

 

/*

              替换中使用提取组

            在替换中也是可以使用提取组的 $表示提取组 $1表示组1  (引用正则表达式提取的字符串)

            */

string msg2 = "Hello ‘welcome‘ to ‘china‘";

 

msg2 = Regex.Replace(msg2, "‘(.+?)‘", "[$1]");

Console.WriteLine(msg2); //Hello [welcome] to [china]

 

/*

             隐藏手机号码

             */

string msg3 = "文天祥12345678911";

msg3 = Regex.Replace(msg3, "([0-9]{4})[0-9]{4}([0-9]{3})", "$1****$2");

 

Console.WriteLine(msg3); //文天祥1234****911

 

/*

              隐藏邮箱名

             */

string msg4 = "[email protected]";

msg4 = Regex.Replace(msg4, "(.+?)@", "*****");

Console.WriteLine(msg4); //*****qq.com





以上是关于最简单的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

正则-简单的模式

验证电子邮件不盲目接受的最简单的正则表达式是啥? [关闭]

俗话:学好正则表达式,走遍天下都没事!最详细的正则入门教程!

简单的js正则表达式问题

张学堂-马士兵-专题-正则表达式

三分钟学会简单的正则表达式