Emeditor正则表达式语法
Emeditor正则表达式语法(Regular expression, 简写Regexes或Regex)
1 普通字符
普通字符是指除了 ".", "*", "?", "+", "(", ")", "{", "}", "[", "]", "^", "$" 和 "\" 这些特殊字符之外的所有其他字符。而这些特殊字符也可以通过前面加上"\"前缀而变为普通字符。比如, 搜索"CCF"即为在文本中匹配所有的"CCF"字符串, 搜索"\[CCF\]"则是在文本中匹配所有的"[CCF]"字符串,简而言之, 普通字符即为只匹配自身的字符。
2 元字符
2.1 特殊字符
. 匹配除换行符 \n 之外的任何单个字符。
( ) 分组捕获(子表达式)的开始和结束。可以捕获子表达式以供以后使用。
[ ] 中括号表达式的开始。中括号表达式是在方括号内包含一个或多个字符构成的列表的表达式。普通字符在中括号内表示本身,大多数特殊字符在中括号表达式内出现时失去它们的意义。除了转义字符''\'', (要包含''\'', 需要使用''\\'') 如: 正则表达式 No [1234] 匹配 No 1, No 2, No 3 和 No 4。
如果想在中括号中使用一个范围作为列表来匹配字符,可以用连字符 ''-'' 将范围中的开始字 徒崾 址 挚 ジ鲎址 淖址 等范ǚ段 诘南喽运承颉H? 正则表达式 No [1-4] = No [1234]。
注意 1、开始值的Unicode值必须在结束值Unicode值的前面。
注意 2、[\-]匹配连字符''-'', 放在中括号列表的开始或结尾也可起到同样的效果, 如 [-c-f] 匹配 c 至 f 的字符和连字符。如果需要匹配不属于列表或范围内的任何字符,可以在列表开头加上''^''前缀。如: 正则表达式 No [^1-4] 匹配 No 5 和更大的编号。中括号表达式还可进行组合, 如 [A-Za-z0-9] 匹配A-Z, a-z, 0-9 的字符。
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,字符 n 匹配字符 n,\n 匹配换行符,序列 \\ 匹配 \,序列 \( 匹配 (。
| 替换字符, 对|左右的两个项分别匹配进行选择。或者说, 就是逻辑的OR的概念
{ } 标记限定符表达式的开始。
(数量)限定字符
限定字符能够指定正则表达式的某个部分必须出现的次数
* 零次或多次匹配前面的字符或子表达式。如,c*f 可以匹配 f 和 ccf。* = {0,}
+ 一次或多次匹配前面的字符或子表达式。如,c+f 可以匹配 cf 和 ccf,但不匹配 f。+ = {1,}
零次或一次匹配前面的字符或子表达式。如,cc?f 可以匹配 cf 或 ccf。? = {0,1}
{n} n 是非负整数。正好匹配 n 次。如,c{2}f 可以匹配 ccf。
{n,} n 是非负整数。至少匹配 n 次。如,c{2,}f 不匹配 cf,而可以匹配 ccccccf。c{1,} = c+。c{0,} = c*
{n,m} m 和 n 是非负整数,其中 n <= m。至少匹配 n 次,至多匹配 m 次。如,c{1,3} 可以匹配 ccf 中的cc。c{0,1} 等效于 c?。
2.2 控制字符
\a Bell 字符。= 0x07
\f 换页符匹配。= 0x0C
\n
换行符匹配。= 0x0A
正则匹配中配到到带单引号\r 匹配一个回车符。= 0x0D
\t 制表符匹配。= 0x09
\v 垂直制表符匹配。= 0x0B
\e ASCII 换码字符。= 0x1B
\0dd 八进制换码字符, dd代表八进制数字。
\xXXXX或\x{XXXX} 4位十六进制Unicode字符, XXXX代表十六进制数字。
\cZ Z-''@'' 控制字符Control-Z, Z为大于等与"@"的ASCII字符
2.3 换码字符
\w 任一单词字符, 如A-Z, a-z, 0-9, _等, 如 \w\w\w可以匹配 U_4 但不匹配 %^e
\W 任一非单词字符, 如 \W\W 可以匹配 *& 但不匹配 7#
\s 任一空白字符,包括空格、制表符、换页符、回车符和垂直制表符,= [ \f\n\r\t\v]
\S 任一非空白字符,= [^ \f\n\r\t\v]
\d 0-9的任一数字字符, 如 \d\d可以匹配 54 但不匹配 a4
\D 任一非数字字符,如 \D\D可以匹配 a4 但不匹配 54
\l a-z 之间的任一小写字符, 如 \l\l\l可以匹配 ccf 但不匹配 ccF
\L 任一非小写字符, 如 \L\L\L可以匹配 CCF 但不匹配 cCF
\u a-z 之间的任一大写字符, 如 \u\u\u可以匹配 CCF 但不匹配 CCf
\U 任一非大写字符, 如 \U\U\U可以匹配 ccf 但不匹配 ccF
\C 任一字符, = ''.''
\Q 前置引号符, 其后的任意字符均被认为普通字符直至出现后置引号符\E,同时匹配单引号和双引号
\E 后置引号符
2.4 转义字符串
表示为[:classname:], 如"[[:space:]]"表示所有的空格字符
alnum 任一单词字符和数字字符, = [\w\d]
alpha 任何一个单词字符, 如A-Z, a-z, 0-9
blank 任一空白字符,包括空格、制表符、换页符、回车符和垂直制表符,= [ \f\n\r\t\v] = \s
cntrl 任一控制字符
digit 0-9的任一数字字符, = \d
graph 任一图形字符
lower a-z 之间的任一小写字符 =\l
print 任一可打印字符 = ''.'' = \C
punct 任一标点符号
space 任一空格字符
upper a-z 之间的任一大写字符 = \u
xdigit 4位十六进制Unicode字符, = \xXXXX
word 任何一个单词字符, 如A-Z, a-z, 0-9, _等, = \w
unicode 任何一个ASCII值大于255的字符
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论