最简单的正则表达式

最简单的正则表达式

 

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

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

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

"\b"匹配一个单词的边界

    表达式:\bhi\b 能匹配:hi

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

    表达式:\Bhi\B 能匹配: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] 汉字中的任意一个汉字
  • ^0\d{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 = "123456789@qq.com";

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

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

posted @ 2019-01-23 00:18  kevin860  阅读(1078)  评论(0编辑  收藏  举报