澳门在线威尼斯官方 > 澳门在线威尼斯官方 > 正则表达式中的捕获和反向引用笔记,正则表达

原标题:正则表达式中的捕获和反向引用笔记,正则表达

浏览次数:86 时间:2019-09-17

捕获组能够捕获正则表明式中的字符形式,何况由正则表明式前面包车型客车号码或名称来引用改格局。

正则表明式平日包括字母文本(Literaltext)和元字符(metacharacter)
字母文本指的是普通文本如"abcde"可相称字符串中其余带有"abcde"的字符串。

()——用来捕获此中的字符串
数字——用号码来引用
eg. 正则表明式 (w)(w)21 可相配字符串abba

元字符则更灵活运用通用的表达式匹配全体符合此表明式规律的字符串。
C#正则表达式语法一、

专一: 1.反向引用用来相称html标签极其有效如<(w+)></1>能够相配<table></table>等看似格式的竹签。

相配单个字符 []——从中挑选二个字符相配

            2.暗中同意意况下,只要使用圆括号,就能够捕获圆括号内所包罗的字符,能够选拔n选项来剥夺这么些暗中认可行为(在第7条里会详细介绍),可能增添?:到圆括号中。eg.                  (?:sophia)或(?n:sophia)此时不会捕获sophia。

高级中学级支持的花色:单词字符([ae])、非单词字符([!?,;@#$*])、字母范围([A-Z])、数字范围([0])

    (?<捕获组名称>)k<捕获组名称>——用名称来援用

eg.正则表明式[ae]ffect
可相称字符串 affect,effect

eg.

(此例中"[ae]"为元字符,"ffect"为字母文本)

正则表明式(?<sophia>w)abck<sophia> 可相称字符串 xabcx

注意:
1.要在字符类中相当连字符,那么把连字符号作为第三个字符列出就能够。

小心:在轮换方式中运用捕获组的格式略有分歧,要用$1、$2等来按数值援引捕获,用${sophia}等称号来按名称援用捕获组

2.能够在单个正则表明式中带有三个字符类。

分组构造 描述 模式 匹配
( subexpression ) 捕获匹配的子表达式并将其分配到一个从零开始的序号中 |(w)1 "deep" 中的 "ee"

eg.[01][0-9]:[0-5][0-9][ap]m能够用来同盟如12:59pm格式的有所时间

法定文书档案仿照效法组的定义

^——排除某个字符(在[]中表此意,还可代表字符串的始发)

eg.正则表达式m[^a]t
可相称字符串
不可相称字符串 met,mit,m&t……mat

C#正则表明式语法二、
相称特殊字符 能够运用的特殊字符:

t——相配制表符 r——相配硬回车符 f——相配换页符 n——相称换行符 描述表示字符类的元字符:

.——相称任何除了n以外的字符(只怕在单行方式中的任何字符) w——相配任何单词字符(任何字母或数字)
W——相配任何非单词字符(除了字母和数字以外的别样字符) s——相称任何空白字符(蕴涵空格、换行、制表符等)
S——相称任何非空白字符(除了空格、换行、制表符等的别样字符) d——相称任何数字字符(0~9的数字)
D——匹配任何非数字字符(除了0~9以外的其余字符) 表示字符串中字符地方: ^——匹配字符串的起来(只怕多行情势下行的早先)。
$——相配字符串的尾声,可能是字符串结尾“n”在此之前的终极三个字符,恐怕是多行情势中的行结尾。
A——相称字符串的起来(忽略多行方式) Z——相称字符串的最后或字符串结尾“n”以前的末段一个字符(忽略多行方式)。
z——相称字符串的结尾。 G——相配当前探求初叶的地方。 b——相称单词的边际。 B——相配单词的非边界。
注意:

1.句点字符(.)非常有用。能够用它来表示别的叁个字符。

eg.正则公布式01.17.84
可相称字符串 01/17/84,01-17-84,011784,01.17.84

2.能够运用b相称单词的界线

eg.正则表明式
可匹配字符串 bletblet
不可相称字符串letter,hamlet

3.A和z在确定保证字符串所含有的是有些表明式,实际不是其余情节时很用。

eg.要判别Text控件是或不是含有单词"sophia",而不含任何附加的字符、换行符或许空白。

Asophiaz

4.句点字符(.)具有特种的意思,若要表示字母字符自己的意思,在头里加七个反斜杠:.

C#正则表明式语法三、
相配二选一的字符体系

|——相称二选一

eg.正则表明式col(o|ou)r
可匹配字符串 color,colour

注意:b(bill|ted)和bbill|ted是分歧的。

膝下还足以包容"malted"因为b元字符只应用于"bill"。

C#正则表明式语法四、
用量词相配 *——匹配0次或频仍 +——相称1次或频繁 ?——相配0次或1次 {n}——恰好相称n次 {n,}——至少相称n次 {n,m}——至少匹配n次,
但相当的少于m次
eg.正则表明式brothers?
可相称字符串 brother,brothers

eg.正则表明式bpd{3,5}
可相配字符串 b以p初始,且后跟3~5个数字结尾

在意:也足以把量词与()一同使用,以便把该量词应用到全方位字母系列。

eg.正则说明式(The)?schoolisbeautiful.
可相称字符串 schoolisbeautiful,Theschoolisbeautiful.

C#正则表明式语法五、
辨认正则表明式和贪婪 有个别量词是名缰利锁的(greedy).他们会一心一意多的极其字符。

如量词*相称0个或多少个字符。即便要相配字符串中其余HTML标签。你恐怕会用如下正则表明式:

<.*>

幸存字符串A<i>quantifier</i>canbe<big>greedy</big>

结果<.*>把<i>quantifier</i>canbe<big>greedy</big>都合营上了。

要缓慢解决该难题,要求与量词一齐使用八个杰出的非贪婪字符“?”,由此表明式变化如下:

<.*?>

像这种类型就能够准确相称<i>、</i>、<big>、</big>。

?能强制量词尽或者少地匹配字符,?还是能够用在偏下多少个量词中:

*?——非贪婪的量词* +?——非贪婪的量词+ ??——非贪婪的量词? {n}?——非贪婪的量词{n} {n,}?——非贪婪的量词
{n,} {n,m}?——非贪婪的量词{n,m}
C#正则表明式语法六、
抓获和反向引用 捕获组(capturegroup)就如正则表明式中的变量。
捕获组能够捕获正则表明式中的字符形式,并且由正则表达式后边的号子或名称来援引改形式。

()——用来捕获个中的字符串

数字——用数码来引用

eg.

正则表明式 (w)(w)21
可相称字符串abba

注意:
1.反向引用用来匹配html标签非常实用如<(w+)></1>能够相称<table></table>等临近格式的价签。

2.暗中认可情状下,只要选用圆括号,就能够捕获圆括号内所蕴藏的字符,能够动用n选项来剥夺那一个默许行为(在第7条里会详细介绍),
要么加多?:到圆括号中。eg.(?:sophia)或(?n:sophia)此时不会捕获sophia。

(?<捕获组名称>)k<捕获组名称>——用名称来引用

eg.

正则表明式(?<sophia>w)abck<sophia>
可相称字符串 xabcx

留神:在轮换方式中应用捕获组的格式略有不相同,要用$1、$2等来按数值援引捕获,用${sophia}等名称来按名称引用捕获组

C#正则表明式语法七、
设置正则表明式的选料

eg.

stringstr="<h4>sophia</h4>"

RegExobjRegEx=newRegEx("<h(d)>(.*?)</h1>");
Response.Write(objRegEx.Replace(str,"<fontsize=$1>$2</font>"));

i——所实践的卓殊是不区分轻重缓急写的(.net中的属性为IgnoreCase) m——内定多行模式(.net中的属性为Multiline)
n——只捕获展现命名或编号的组(.net中的属性为ExplicitCapture) c——编写翻译正则表明式,那样会时有爆发不慢的施行进程,但运行会变慢(.net中的属性为Compiled)
s——内定单行方式(.net中的属性为SingleLine) x——解决非转义空白字符和注释(.net中的属性为IgnorePatternWhitespace)
r——搜索从右到左进行(.net中的属性为RightToLeft) -——表示禁止使用。
eg.(?im-r:sophia)允许不区分轻重缓急写相称sophia,使用多行格局,但禁止使用了从右到左的合作。

注意:
1.m会耳熟能详怎么着剖判最初元字符(^)和了结元字符($)。
在暗中认可情状^和$只十一分整个字符串的初步,即便字符串包罗多行文本。假诺启用了m,那么它们就可以兼容每行文本的开头和最后。

2.s会影响什么分析句点元字符(.)。经常三个句点能匹配除了换行符以外的全体字符。但在单行方式下,句点也能协作三个换行符。

from:
文库:

 

常用的C#正则表明式!

"^d+$" //非负整数(正整数 + 0) 
"^[0-9]*[1-9][0-9]*$" //正整数 
"^((-d+)|(0+))$" //非正整数(负整数 + 0) 
"^-[0-9]*[1-9][0-9]*$" //负整数 
"^-?d+$" //整数 
"^d+(.d+)?$" //非负浮点数(正浮点数 + 0) 
"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数 
"^((-d+(.d+)?)|(0+(.0+)?))$" //非正浮点数(负浮点数 + 0) 
"^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数 
"^(-?d+)(.d+)?$" //浮点数 
"^[A-Za-z]+$" //由贰十多个葡萄牙共和国语字母组成的字符串 
"^[A-Z]+$" //由贰拾几个马耳他语字母的大写组成的字符串 
"^[a-z]+$" //由28个罗马尼亚(罗曼ia)语字母的小写组成的字符串 
"^[A-Za-z0-9]+$" //由数字和三十个罗马尼亚(România)语字母组成的字符串 
"^w+$" //由数字、二十八个塞尔维亚语字母或许下划线组成的字符串 
"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$" //email地址 
"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$" //url 
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年 
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil 
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码 
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址 

本文由澳门在线威尼斯官方发布于澳门在线威尼斯官方,转载请注明出处:正则表达式中的捕获和反向引用笔记,正则表达

关键词:

上一篇:没有了

下一篇:没有了