正则表达式:regex 英 ['redʒeks]
1,\d\d\d\d或者是\d{4} 表示匹配4位数的数字。
2.代码 说明。这些可被称作元字符。
. 匹配除换行符以外的任意字符1%*_jk2YH$#@Jj
\w 数字字母汉字下划线 bst456_5ghgtft
\s 匹配任意的空白符 space table键和半全角空格
\d 匹配数字 digit
\D 非数字
\D\d 所有字符。
\b 匹配单词的开始或结束
4.
常用的限定符
代码/语法 说明
* 重复零次或更多次 [0-9]* 无或者无限个数字。
+ 重复一次或更多次
? 重复零次或一次 [0-9]? 0次或1次数字
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
5,综合利用
width=".+?"| height=".+?"| class=".+?"| x:str|<font.+?>| cellpadding=".+?"| cellspacing=".+?"|<span.+?n>|<br/>|<!.+>|<col .+/>|<tr .+?/>| style='.+?'
6,()提升优先级的,分组。
7.^ 1.匹配字符串的开始,2.非
^[0-9]{2}[a-z]{3}$ :匹配下例 而不能匹配66ppp.匹配内容前后无内容了。
66ppp
注意^$指的是行首和行尾。
[0-9]{2}[a-z]{3} :66ppp 666ppp67867中的也匹配
^\d{5,12}$ (^$表示行首行位) 匹配整行是5到12位纯数字的字符串。
8.
通过下面的表达式可以匹配出HTML中的标签。
\\s]+))?)+\\s*|\\s*)/?>
9,身份证最后一位:[0-9xX]
10,? 重复零次或一次 [0-9]? 0次或1次数字
[1-9]{3}([a-z]{2})? :123 123dd
11.例如身份证:
^[1-9]\d{5}[1-2]\d{3}((0[1-9])|(1[0-2]))(([0-2]\d)|(3[0-1]))\d{3}([0-9xX])$
12,邮箱
[0-9a-zA-Z_.-]+@[0-9a-zA-Z_.]+([.][a-zA-Z]+){1,2}
13,零宽断言
(?<=<(\w+)>).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容。(<?(\w+)>)指定了这样的前缀:被尖括号括起来的单词(比如可能是<b>),然后是.*(任意的字符串),最后是一个后缀(?=<\/\1>)。注意后缀里的\/,它用到了前面提过的字符转义;\1则是一个反向引用,引用的正是捕获的第一组,前面的(\w+)匹配的内容,这样如果前缀实际上是<b>的话,后缀就是</b>了。整个表达式匹配的是<b>和</b>之间的内容(再次提醒,不包括前缀和后缀本身)。
15,匹配带网址的标签
加@,带属性的全部再加双引号。
@"<img id=""9833252"" title="""" border=""0"" src=""../../attachement/jpg/site351/20161006/(.+.jpg)"" sourcedescription=""编辑提供的本地文件"" sourcename=""本地文件""/>"
18 汉字类(为了去除:号,就在[]中额外添加了中文冒号)
[^\x00-\xff:]+ 背负喷雾器:
19】
原始字符串:我是程序员
正则:(.*)(([^不是]|[^是]|)程序员)(.*)
替换为:$1工程师$4
这样可以替换什么?比较复杂,它会匹配“程序员”,但是不能匹配“不是程序员”或者“是程序员”。
这时正则里面有4个括号,所以最后一个匹配项要用$4。
\1是一个反向引用
$替换中的引用
20】
vs2010的:(至[^(\:|:)])|(至$)
匹配”至“后不带冒号的。
至$:以至结尾的。
21】标记html标签
<(\S*?) [^>]*>|<[/]\w+>
22】某html标签对
vs2010中:\<style type="text\/css"\>(.|\n)@\<\/style\> 在vs2010中@相当于?
普通:<style type="text/css">([\s\S]*?) </style>
23】行
^(\s*)\r\n
24】匹配:以汉字开头又以汉字结尾,中间可以是任意长度的字符
\b[^\x00-\xff].*[^\x00-\xff]\b
若要非单行匹配则前面加:(?is)
25】
正则表达式测试器
http://deerchao.net/
和RegexBuddy
1,\d\d\d\d或者是\d{4} 表示匹配4位数的数字。
2.代码 说明。这些可被称作元字符。
. 匹配除换行符以外的任意字符1%*_jk2YH$#@Jj
\w 数字字母汉字下划线 bst456_5ghgtft
\s 匹配任意的空白符 space table键和半全角空格
\d 匹配数字 digit
\D 非数字
\D\d 所有字符。
\b 匹配单词的开始或结束
4.
常用的限定符
代码/语法 说明
* 重复零次或更多次 [0-9]* 无或者无限个数字。
+ 重复一次或更多次
? 重复零次或一次 [0-9]? 0次或1次数字
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
5,综合利用
width=".+?"| height=".+?"| class=".+?"| x:str|<font.+?>| cellpadding=".+?"| cellspacing=".+?"|<span.+?n>|<br/>|<!.+>|<col .+/>|<tr .+?/>| style='.+?'
6,()提升优先级的,分组。
7.^ 1.匹配字符串的开始,2.非
^[0-9]{2}[a-z]{3}$ :匹配下例 而不能匹配66ppp.匹配内容前后无内容了。
66ppp
注意^$指的是行首和行尾。
[0-9]{2}[a-z]{3} :66ppp 666ppp67867中的也匹配
^\d{5,12}$ (^$表示行首行位) 匹配整行是5到12位纯数字的字符串。
8.
通过下面的表达式可以匹配出HTML中的标签。
\\s]+))?)+\\s*|\\s*)/?>
9,身份证最后一位:[0-9xX]
10,? 重复零次或一次 [0-9]? 0次或1次数字
[1-9]{3}([a-z]{2})? :123 123dd
11.例如身份证:
^[1-9]\d{5}[1-2]\d{3}((0[1-9])|(1[0-2]))(([0-2]\d)|(3[0-1]))\d{3}([0-9xX])$
12,邮箱
[0-9a-zA-Z_.-]+@[0-9a-zA-Z_.]+([.][a-zA-Z]+){1,2}
13,零宽断言
(?<=<(\w+)>).*(?=<\/\1>)匹配不包含属性的简单HTML标签内里的内容。(<?(\w+)>)指定了这样的前缀:被尖括号括起来的单词(比如可能是<b>),然后是.*(任意的字符串),最后是一个后缀(?=<\/\1>)。注意后缀里的\/,它用到了前面提过的字符转义;\1则是一个反向引用,引用的正是捕获的第一组,前面的(\w+)匹配的内容,这样如果前缀实际上是<b>的话,后缀就是</b>了。整个表达式匹配的是<b>和</b>之间的内容(再次提醒,不包括前缀和后缀本身)。
15,匹配带网址的标签
加@,带属性的全部再加双引号。
@"<img id=""9833252"" title="""" border=""0"" src=""../../attachement/jpg/site351/20161006/(.+.jpg)"" sourcedescription=""编辑提供的本地文件"" sourcename=""本地文件""/>"
18 汉字类(为了去除:号,就在[]中额外添加了中文冒号)
[^\x00-\xff:]+ 背负喷雾器:
19】
原始字符串:我是程序员
正则:(.*)(([^不是]|[^是]|)程序员)(.*)
替换为:$1工程师$4
这样可以替换什么?比较复杂,它会匹配“程序员”,但是不能匹配“不是程序员”或者“是程序员”。
这时正则里面有4个括号,所以最后一个匹配项要用$4。
\1是一个反向引用
$替换中的引用
20】
vs2010的:(至[^(\:|:)])|(至$)
匹配”至“后不带冒号的。
至$:以至结尾的。
21】标记html标签
<(\S*?) [^>]*>|<[/]\w+>
22】某html标签对
vs2010中:\<style type="text\/css"\>(.|\n)@\<\/style\> 在vs2010中@相当于?
普通:<style type="text/css">([\s\S]*?) </style>
23】行
^(\s*)\r\n
24】匹配:以汉字开头又以汉字结尾,中间可以是任意长度的字符
\b[^\x00-\xff].*[^\x00-\xff]\b
若要非单行匹配则前面加:(?is)
25】
正则表达式测试器
http://deerchao.net/
和RegexBuddy