按正则表达式搜索
- Last UpdatedSep 24, 2024
- 1 minute read
正则表达式使用字母数字字符和称为元字符的特殊字符来描述一个或多个要在搜索脚本时匹配的字符串。正则表达式充当一种字符模式,用来与被搜索的脚本文本进行比较。
正则表达式的结构很像算术表达式。使用各种元字符和运算符将简单的表达式组合起来,创建复杂的表达式。
正则表达式的组件可以是单个字符、成组的字符、字符范围,或在字符之间的选择。也可以是这些组件的任意组合。
脚本正则表达式
|
正则表达式 |
用途 |
示例 |
|
。 |
匹配任意单个字符(换行符除外) |
s.e 匹配“step”中的“ste”和“transfer”中的“sfe”,但不匹配“across”中的“acro”。 |
|
* |
*前面的表达式匹配零次或多次(匹配尽可能多的字符) |
a*r 匹配“rack”中的“r”、“ark”中的“ar”和“aardvark”中的“aar” |
|
.* |
匹配任意字符零次或多次(通配符 *) |
c.*e 匹配“racket”中的“cke”、“comment”中的“comme”和“code”中的“code” |
|
+ |
+前面的表达式匹配一次或多次(匹配尽可能多的字符) |
e.+e 匹配“feeder”中的“eede”,但不匹配“ee”。 |
|
.+ |
匹配任意字符一次或多次(通配符 ?) |
e.+e 匹配“feeder”中的“eede”,但不匹配“ee”。 |
|
*? |
*?前面的表达式匹配零次或多次(匹配尽可能少的字符) |
e.*?e 匹配“feeder”中的“ee”,但不匹配“eede”。 |
|
+? |
+?前面的表达式匹配一次或多次(匹配尽可能少的字符) |
e.+?e 匹配“enterprise”中的“ente”和“erprise”,但不匹配整个词“enterprise”。 |
|
^ |
将匹配字符串定位到行首或字符串的开头 |
^car 仅匹配出现在行首的单词“car”。 |
|
\r?$ |
将匹配字符串定位到行尾 |
End\r? nbsp;仅匹配出现在行尾的单词“end”。 |
|
[abc] |
匹配字符集中的任意单个字符 |
b[abc] 匹配“ba”、“bb”和“bc”。 |
|
[a-f] |
匹配字符范围中的任意字符 |
be[n-t] 匹配“between”中的“bet”、“beneath”中的“ben”和“beside”中的“bes”,但不匹配“below”。 |
|
() |
捕获括号内包含的表达式并隐式地为其编号 |
([a-z])X\1 与 "aXa" 和 "bXb" 匹配,但与 "aXb" 不匹配。". "\1" 是指第一个表达式组 "[a-z]"。 |
|
(?!abc) |
使匹配无效 |
real (?!ity) 匹配“realty”和“really”中的“real”,但不匹配“reality”。它还会找到“realityreal”中的第二个“real”(而非第一个“real”)。 |
|
[^abc] |
匹配不在给定字符集中的任何字符 |
be[^n-t] 匹配“before”中的“bef”、“behind”中的“beh”和“below”中的“bel”,但不匹配“beneath”。 |
|
| |
匹配符号前面或符号后面的表达式。 |
(sponge|mud)bath 匹配“spongebath”和“mudbath”。 |
|
|\^ |
对反斜杠后面的字符进行转义 |
|
|
{x}, |
指定前面的字符或组的出现次数 |
x(ab){2}x 匹配“xababx”,并且 x(ab){2,3}x 匹配“xababx”和“xabababx”,但不匹配 “xababababx”。 |
|
\p{X} |
匹配 Unicode 字符类中的文本,其中“X”是 Unicode 数字。 |
\p{Lu} 匹配“Thomas Doe”中的“T”和“D”。 |
|
\b |
匹配单词两侧的字符 |
\bin 匹配“inside”中的“in”,但不匹配“pinto”。 |
|
\r?\n |
匹配换行符(即新行前面的回车符)。 |
End\r?\nBegin 仅当“End”是一行的最后一个字符串,且“Begin”是下一行的第一个字符串时,才匹配“End”和“Begin”。 |
|
\w |
匹配任意字母数字字符 |
a\wd 匹配“add”和“a1d”,但不匹配“a d”。 |
|
(?[^\r\n])\s |
匹配任意空格字符。 |
Public\sInterface 匹配短语“Public Interface”。 |
|
\d |
匹配任意数字字符 |
\d 匹配“3456”中的“3”、“23”中的“2”和“1”中的“1”。 |
|
\uXXXX(其中 XXXX 指定 Unicode 字符值) |
匹配 Unicode 字符 |
\u0065 匹配字符“e”。 |
|
\b(\w+|[\w-[0-9\]]\w*)\b |
匹配标识符 |
匹配“Type1”,但不匹配“&type1”或“#define”。 |
|
((\".+?\")|('.+?')) |
匹配引号中的字符串 |
匹配单引号或双引号内的任何字符串。 |
|
\b0[xX]([0-9a-fA-F])\b |
匹配十六进制数 |
匹配“0xc67f”,但不匹配“0xc67fc67f”。 |
|
\b[0-9]\.\[0-9]+\b |
匹配整数和小数 |
匹配“1.333”。 |
优先顺序
从左到右评估正则表达式,并遵守一定的优先顺序。
下表包含了正则表达式运算符的优先顺序,从最高到最低排列。
|
运算符 |
描述 |
|
\ |
转义 |
|
()、(?:)、(?=)、[] |
圆括号和方括号 |
|
*、+、?、{n}、{n,}、{n,m} |
量词 |
|
^、$、\任何元字符 |
定位和顺序 |
|
| |
交替 |
字符的优先级高于交替运算符,例如,允许“m|food”匹配“m”或“food”。