模板(Template):从匹配的功效中建设一个字符串,这是通过正则表达式匹配出来的一组值,意为利用提取到的第几个值(大概有多个值匹配,因此利用模板);从1开始匹配,以此类推。
通过正则表达式匹配出来的一组值,语法为:$1$指代第一组,$2$指代第二组,$0$指代整个匹配功效
参数可以在取值模板组合利用,譬喻:“11-22”作为模板获得的值是利用“-”毗连的第一个待匹配内容与第二个待匹配内容组合而成的字符串。
匹配数字(MatchNo):正则表达式匹配数据的功效可以看做一个数组,暗示如何取值:0代表随机取值,正数n则暗示取第n个值(好比1代表取第一个值),负数则暗示提取所有切合条件的值。一般与ForEach节制器共同利用。
缺省值(DefaultValue):匹配不到数据时,引用变量返回一个默认值,在调试中此成果很有用,假如没有配置默认值,那么很难判别出正则表达式是否有匹配到数据或利用是否正确,虽然也可据测试需求,在调试完成后去掉默认值的配置。凡是用于后续的逻辑判定,一般凡是为特定寄义的英文大写组合,好比:ERROR
正则表达式语法1\bhi\b : 匹配只有hi的字符,\b代表的位置,第一个\b代表单词开始的位置,第二个\b代表单词竣事的位置2\bhi\b.*\bthis\b : 匹配hi的字符后,中间有任意个字符后,后头是this的字符3 . : 暗示任意字符的元字符,譬喻Perl正则表达式,r.t匹配这些字符串:rat、rut、rt,可是不匹配root4 *:暗示任意数量的元字符,代表的不是字符,也不是位置,而是数量。匹配0或多个正亏得它之前的谁人字符。譬喻Perl正则表达式.*意味着可以或许匹配任意数量的任何字符5 \d : 暗示任意一个数字[0-9]6\d+: 匹配一个或更多持续的数字。这里的+是和*雷同的元字符,差异的是*匹配反复任意次(大概是0次),而+则匹配反复1次或更多次。7\D: 匹配任意非数字的字符[^0-9] \w:8 \d{2}: 暗示任意一个数字呈现两次,相当于\d\d9 \s : 匹配任意的空缺符,包罗空格,换行符,制表符(tab),中文全角空格。即空缺 [ \r\t\n\f]10\S: 匹配任意不是空缺符的字符。即非空缺 [^ \r\t\n\f]11\w : 匹配字母,数字,下划线或汉字。即任意单词字符 [_0-9a-zA-Z]12\W: 匹配任意不是字母,数字,下划线,汉字的字符。即任意非单词字符 [^_0-9a-zA-Z]13\b\w{2}\b : 匹配恰好有两个字符的单词14\b : 匹配单词的开始和竣事15^ : 匹配字符串的开始。譬喻Perl正则表达式^Whenin可以或许匹配字符串"Wheninthecourseofhumanevents"的开始,可是不能匹配"WhatandWheninthe"16$ : 匹配字符串的竣事, 例: ^\d{2,5}$ 暗示输入的数字必需是2位(包括)到5位(包括)之间;
譬喻Perl正则表达式weasel$可以或许匹配字符串"He'saweasel"的末端,可是不能匹配字符串"Theyareabunchofweasels."
17\ : 转义字符,假如要查找元字符就需要用转义字符来完成,好比: deerchao\.net 实际上是deerchao.net。
用来将这里列出的这些元字符看成普通的字符来举办匹配。譬喻Perl正则表达式\$被用来匹配美元标记,而不是行尾,雷同的,Perl正则表达式\.用来匹配点字符,而不是任何字符的通配符
18 反复次数说明: *是反复0次或多次,+是反复1次或多次,?是反复零次或一次,{n} 是反复n次,{n,}是反复n次到多次,{n,m}是反复n次到m次19[]、[c1-c2]、[^c1-c2]: 括号里的字符会被匹配,好比[ab]匹配a或b字符,[,?]匹配逗号或问号
譬喻Perl正则表达式r[aou]t匹配rat、rot和rut,可是不匹配ret。
可以在括号中利用连字符-来指定字符的区间,譬喻Perl正则表达式[0-9]可以匹配任何数字字符;
还可以拟定多个区间,譬喻Perl正则表达式[A-Za-z]可以匹配任何巨细写字母。
另一个重要的用法是“解除”,要想匹配除了指定区间之外的字符——也就是所谓的补集——在左边的括号和第一个字符之间利用^字符,譬喻Perl正则表达式[^269A-Z]将匹配除了2、6、9和所有大写字母之外的任何字符
20 [a-z0-9A-Z] : 相当于匹配\w
21 | : 匹配或法则,将两个匹配条件举办逻辑“或”(Or)运算。好比: \(0\d{2}\)[- ]?\d{8}|\(0\d{3}\)[- ]\d{7}|0\d{2}[- ]?\d{8}|0\d{3}[- ]?\d{7} 这个就是匹配电话号码的,如:012-56236562, 0536-1234567,(0536)-1234567,01212345678
譬喻Perl正则表达式(him|her)匹配"itbelongstohim"和"itbelongstoher",可是不能匹配"itbelongstothem."。留意:这个元字符不是所有的软件都支持的
22 ():匹配分组,255.134.123.123 或 193.168.1.1 匹配表达式为:(([01]?\d\d?|25[0-5]|2[0-4]\d)\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d)
23 \B : 匹配不是单词开头或末了的位置
24 + :匹配1或多个正亏得它之前的谁人字符。譬喻Perl正则表达式9+匹配9、99、999、98、93dsf、9.....等。留意:这个元字符不是所有的软件都支持的
25 ? :匹配0或1个正亏得它之前的谁人字符。留意:这个元字符不是所有的软件都支持的
26 [^x] : 匹配除了x以外的任意字符
27 [^aeiou] : 匹配除了aeiou以外的任意字符
28 (?<word>\w+) 或(?'word'\w+) 后向引用,用于反复搜索前面某个分组已经匹配的文本,引用时就可以写成\k<word>。实际上分组0对应整个正则表达式;组号分派进程是从左到右分派两遍的,第一遍先扫描未定名的分组,第二遍扫描已定名的分组,所以定名分组的组号永远大于未定名分组的组号的; 可以用(?:exp)来剥夺组号分派的参加权
29 分组定名的几种语法: (exp) 匹配exp表达式并将文本匹配的内容自动分派到分组里;
(?<name> exp)匹配exp表达式里的文本内容到name组名下,也可以写成(?'name'exp); (?:exp)匹配exp表达式里内容,可是不捕捉匹配的文本也不给匹配的文天职配组号;(?=exp)匹配exp前面的位置; (?<=exp)匹配exp后头的位置 ; (?!exp)匹配后头不是exp的位置 ; (?<!exp) 匹配前面不是exp的位置; (?#comment)添加注释,对正则表达式没有任何影响;
30 (?=exp)与(?<=exp)为零宽断言,个中(?=exp)为零宽度正预测先行断言,(?<=exp)为零宽度正回首后发断言。(?=exp)暗示自exp断言表达式呈现的位置开始匹配断言之前的内容,如\b\w+(?=er\b) 源文件为tester,则匹配功效为:test。(?<=exp)暗示自exp断言表达式内容竣事后的位置开始匹配后头的内容,如(?<=test)\w+\b 源文件为test, 则匹配功效为:er。
31 {i}、{i,}、{i,j}:匹配指定命目标字符,这些字符是在它之前的表达式界说的。譬喻Perl正则表达式A[0-9]\{3\}可以或许匹配字符"A"后头随着正好3个数字字符的串,譬喻A123、A348等,可是不匹配A1234。Perl正则表达式[0-9]\{4,\}匹配持续的任意4个或4个以上数字字符。Perl正则表达式[0-9]\{4,6\}匹配持续的任意4个、5个可能6个数字字符。留意: 这个元字符不是所有的软件都支持的
32 \ba\w*\b:匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词竣事处(\b)
更多语法详情可以会见