正则表达式文档格式.docx
《正则表达式文档格式.docx》由会员分享,可在线阅读,更多相关《正则表达式文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
![正则表达式文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/23/0e99a424-aea4-4b2a-ab82-f6fce16af62f/0e99a424-aea4-4b2a-ab82-f6fce16af62f1.gif)
>
仅当词在文本中的此位置结束时才匹配。
分组
()
将子表达式分组。
或
|
匹配OR符号(|)之前或之后的表达式。
).最常用在分组中。
例如,(sponge|mud)bath匹配“spongebath”和“mudbath”。
转义符
\
匹配跟在反斜杠(\)后的字符。
这使您可以查找在正则表达式表示法中使用的字符,如{和^。
例如,\^搜索^字符。
带标记的表达式
{}
标记括号内的表达式所匹配的文本。
第n个带标记的文本
\n
在“查找”或“替换”表达式中,指示第n个带标记的表达式所匹配的文本,其中n是从1至9的数字。
在“替换”表达式中,\0插入整个匹配的文本。
右对齐字段
\(w,n)
在“替换”表达式中,将字段中第n个带标记的表达式右对齐至少w字符宽。
左对齐字段
\(-w,n)
在“替换”表达式中,将字段中第n个带标记的表达式左对齐至少w字符宽。
禁止匹配
~(X)
当X出现在表达式中的此位置时禁止匹配。
例如,real~(ity)匹配“realty”和“really”中的“real”,而不匹配“reality”中的“real”。
字母数字字符
:
a
匹配表达式
([a-zA-Z0-9])。
字母字符
c
匹配表达式
([a-zA-Z])。
十进制数
d
([0-9])。
十六进制数
h
([0-9a-fA-F]+)。
标识符
i
([a-zA-Z_$][a-zA-Z0-9_$]*)。
有理数
n
(([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+)).
带引号的字符串
q
匹配表达式(("
[^"
]*"
)|('
[^'
]*'
))
字母字符串
w
([a-zA-Z]+)
十进制整数
z
([0-9]+)。
\e
UnicodeU+001B。
Bell
\g
UnicodeU+0007。
退格符
\h
UnicodeU+0008。
换行符
匹配与平台无关的换行符。
在“替换”表达式中,插入换行符。
制表符
\t
匹配制表符,UnicodeU+0009。
Unicode字符
\x####或\u####
匹配Unicode值给定的字符,其中####是十六进制数。
可以用ISO10646代码点或两个提供代理项对的值的Unicode代码点指定基本多语种平面(即一个代理项)外的字符。
下表列出按标准Unicode字符属性进行匹配的语法。
两个字母的缩写词与Unicode字符属性数据库中所列的一样。
可将这些指定为字符集的一部分。
例如,表达式[:
Nd:
Nl:
No]匹配任何种类的数字。
大写字母
Lu
匹配任何一个大写字母。
例如,:
Luhe匹配“The”但不匹配“the”。
小写字母
Ll
匹配任何一个小写字母。
Llhe匹配“the”但不匹配“The”。
词首大写字母
Lt
匹配将大写字母和小写字母结合的字符,例如,Nj和Dz。
修饰符字母
Lm
匹配字母或标点符号,例如逗号、交叉重音符和双撇号,用于表示对前一字母的修饰。
其他字母
Lo
匹配其他字母,如哥特体字母ahsa。
Nd
匹配十进制数(如0-9)和它们的双字节等效数。
字母数字
Nl
匹配字母数字,例如罗马数字和表意数字零。
其他数字
No
匹配其他数字,如旧斜体数字一。
开始标点符号
Ps
匹配开始标点符号,例如左方括号和左大括号。
结束标点符号
Pe
匹配结束标点符号,例如右方括号和右大括号。
左引号
Pi
匹配左双引号。
右引号
Pf
匹配单引号和右双引号。
破折号
Pd
匹配破折号标记。
连接符号
Pc
匹配下划线标记。
其他标点符号
Po
匹配逗号(,)、?
、"
、!
、@、#、%、&
、*、\、冒号(:
)、分号(;
)、'
和/。
空白分隔符
Zs
匹配空白。
行分隔符
Zl
匹配Unicode字符U+2028。
段落分隔符
Zp
匹配Unicode字符U+2029。
无间隔标记
Mn
匹配无间隔标记。
组合标记
Mc
匹配组合标记。
封闭标记
Me
匹配封闭标记。
数学符号
Sm
匹配+、=、~、|、<
和>
。
货币符号
Sc
匹配$和其他货币符号。
修饰符号
Sk
匹配修饰符号,如抑扬音、抑音符号和长音符号。
其他符号
So
匹配其他符号,如版权符号、段落标记和度数符号。
其他控制
Cc
匹配行尾。
其他格式
Cf
格式化控制字符,例如双向控制字符。
代理项
Cs
匹配代理项对的一半。
其他私用
Co
匹配私用区域的任何字符。
其他未分配的字符
Cn
匹配未映射到Unicode字符的字符。
除标准Unicode字符属性外,还可以指定下列附加属性。
可将这些属性指定为字符集的一部分。
Alpha
Al
匹配任何一个字符。
Alhe匹配“The”、“then”、“reached”等单词。
数字
Nu
匹配任何一个数或数字。
标点符号
Pu
匹配任何一个标点符号,如?
、@、'
等等。
空白
Wh
匹配所有类型的空格,包括印刷和表意文字的空格。
Bidi
Bi
匹配诸如阿拉伯文和希伯来文这类从右向左书写的字符。
朝鲜文
Ha
匹配朝鲜文和组合朝鲜文字母。
平假名
Hi
匹配平假名字符。
片假名
Ka
匹配片假名字符。
表意文字/汉字/日文汉字
Id
匹配表意文字字符,如汉字和日文汉字
©
2011Microsoft.版权所窗体顶端
正则表达式语法
VisualStudio2005
其他版本
∙VisualStudio2010
∙VisualStudio2008
正则表达式是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”)。
模式描述在搜索文本时要匹配的一个或多个字符串。
正则表达式示例
表达式
匹配
/^\s*$/
匹配空行。
/\d{2}-\d{5}/
验证由两位数字、一个连字符再加5位数字组成的ID号。
/<
\s*(\S+)(\s[^>
]*)?
[\s\S]*<
\s*\/\1\s*>
/
匹配HTML标记。
下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:
字符
说明
将下一字符标记为特殊字符、文本、反向引用或八进制转义符。
例如,“n”匹配字符“n”。
“\n”匹配换行符。
序列“\\”匹配“\”,“\(”匹配“(”。
匹配输入字符串开始的位置。
如果设置了RegExp对象的Multiline属性,^还会与“\n”或“\r”之后的位置匹配。
匹配输入字符串结尾的位置。
如果设置了RegExp对象的Multiline属性,$还会与“\n”或“\r”之前的位置匹配。
零次或多次匹配前面的字符或子表达式。
例如,zo*匹配“z”和“zoo”。
*等效于{0,}。
一次或多次匹配前面的字符或子表达式。
例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配。
+等效于{1,}。
?
零次或一次匹配前面的字符或子表达式。
例如,“do(es)?
”匹配“do”或“does”中的“do”。
等效于{0,1}。
{n}
n是非负整数。
正好匹配n次。
例如,“o{2}”与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配。
{n,}
至少匹配n次。
例如,“o{2,}”不匹配“Bob”中的“o”,而匹配“foooood”中的所有o。
“o{1,}”等效于“o+”。
“o{0,}”等效于“o*”。
{n,m}
M和n是非负整数,其中n<
=m。
匹配至少n次,至多m次。
例如,“o{1,3}”匹配“fooooood”中的头三个o。
'
o{0,1}'
等效于'
o?
注意:
您不能将空格插入逗号和数字之间。
当此字符紧随任何其他限定符(*、+、?
、{n}、{n,}、{n,m})之后时,匹配模式是“非贪心的”。
“非贪心的”模式匹配搜索到的、尽可能短的字符串,而默认的“贪心的”模式匹配搜索到的、尽可能长的字符串。
例如,在字符串“oooo”中,“o+?
”只匹配单个“o”,而“o+”匹配所有“o”。
匹配除“\n”之外的任何单个字符。
若要匹配包括“\n”在内的任意字符,请使用诸如“[\s\S]”之类的模式。
(pattern)
匹配pattern并捕获该匹配的子表达式。
可以使用$0…$9属性从结果“匹配”集合中检索捕获的匹配。
若要匹配括号字符(),请使用“\(”或者“\)”。
(?
pattern)
匹配pattern但不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。
这对于用“or”字符(|)组合模式部件的情况很有用。
例如,'
industr(?
y|ies)是比'
industry|industries'
更经济的表达式。
=pattern)
执行正向预测先行搜索的子表达式,该表达式匹配处于匹配pattern的字符串的起始点的字符串。
它是一个非捕获匹配,即不能捕获供以后使用的匹配。
Windows(?
=95|98|NT|2000)'
匹配“Windows2000”中的“Windows”,但不匹配“Windows3.1”中的“Windows”。
预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后。
!
执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配pattern的字符串的起始点的搜索字符串。
95|98|NT|2000)'
匹配“Windows3.1”中的“Windows”,但不匹配“Windows2000”中的“Windows”。
x|y
匹配x或y。
z|food'
匹配“z”或“food”。
(z|f)ood'
匹配“zood”或“food”。
[xyz]
字符集。
匹配包含的任一字符。
例如,“[abc]”匹配“plain”中的“a”。
[^xyz]
反向字符集。
匹配未包含的任何字符。
例如,“[^abc]”匹配“plain”中的“p”。
[a-z]
字符范围。
匹配指定范围内的任何字符。
例如,“[a-z]”匹配“a”到“z”范围内的任何小写字母。
[^a-z]
反向范围字符。
匹配不在指定的范围内的任何字符。
例如,“[^a-z]”匹配任何不在“a”到“z”范围内的任何字符。
\b
匹配一个字边界,即字与空格间的位置。
例如,“er\b”匹配“never”中的“er”,但不匹配“verb”中的“er”。
\B
非字边界匹配。
“er\B”匹配“verb”中的“er”,但不匹配“never”中的“er”。
\cx
匹配x指示的控制字符。
例如,\cM匹配Control-M或回车符。
x的值必须在A-Z或a-z之间。
如果不是这样,则假定c就是“c”字符本身。
\d
数字字符匹配。
等效于[0-9]。
\D
非数字字符匹配。
等效于[^0-9]。
\f
换页符匹配。
等效于\x0c和\cL。
换行符匹配。
等效于\x0a和\cJ。
\r
匹配一个回车符。
等效于\x0d和\cM。
\s
匹配任何空白字符,包括空格、制表符、换页符等。
与[\f\n\r\t\v]等效。
\S
匹配任何非空白字符。
与[^\f\n\r\t\v]等效。
制表符匹配。
与\x09和\cI等效。
\v
垂直制表符匹配。
与\x0b和\cK等效。
\w
匹配任何字类字符,包括下划线。
与“[A-Za-z0-9_]”等效。
\W
与任何非单词字符匹配。
与“[^A-Za-z0-9_]”等效。
\xn
匹配n,此处的n是一个十六进制转义码。
十六进制转义码必须正好是两位数长。
例如,“\x41”匹配“A”。
“\x041”与“\x04”&
“1”等效。
允许在正则表达式中使用ASCII代码。
\num
匹配num,此处的num是一个正整数。
到捕获匹配的反向引用。
例如,“(.)\1”匹配两个连续的相同字符。
标识一个八进制转义码或反向引用。
如果\n前面至少有n个捕获子表达式,那么n是反向引用。
否则,如果n是八进制数(0-7),那么n是八进制转义码。
\nm
如果\nm前面至少有nm个捕获子表达式,那么nm是反向引用。
如果\nm前面至少有n个捕获,则n是反向引用,后面跟有字符m。
如果两种前面的情况都不存在,则\nm匹配八进制值nm,其中n和m是八进制数字(0-7)。
\nml
当n是八进制数(0-3),m和l是八进制数(0-7)时,匹配八进制转义码nml。
\un
匹配n,其中n是以四位十六进制数表示的Unicode字符。
例如,\u00A9匹配版权符号(©
)。
反馈信息
x
请与我们分享您的经历…
页面加载速度够快吗?
是
否
您喜欢网页的设计吗?
这一主题的内容是否实用?
请告诉我们更多意见
窗体底端