通过使用正则表达式,可以在各种文本中执行繁复的查和替换操作。如果您不知道所要查的确切文本或代码,或者要查文本或代码字符串的多个匹配项,则可以使用正表达式。
正则表达式是一种文本模式,它可以描述所要查的文本的一种或多种变体。正则表达式由特定字符(如字母“a”到“z”)和描述文本模式的特殊字符(如星号“*”)组成。例如,要在网站中查“page”的所有变体,可以搜索“page*”。这样,将在网站中查“page”、“pages”、“pager”以及以“page”开头的所有其他单词。
在搜索中使用正则表达式时,特定的规则将控制哪些字符组合将执行特定的匹配操作。每种正则表达式(或正则表达式的组合)都称为“语法”。可以在一个语法中使用多个正则表达式以精确匹配要搜索的目标。
语法表达式说明
.任何单个字符,用作换行符(\n)以外的任何单个打印或非打印字符的通配符。
例如,正则表达式  c.t可匹配cat、c t、cot等字符串,但不能匹配cost。在本例中,句号(.)是一个代表单个字符的通配符。它出现在字母“c”和“t”之间,因此字符“c”和“t”之间的任何单个字符都与表达式匹配-即使是空格也一样。
*零或更多,用于匹配在此表达式之前出现零次或更多次的某个字符,可与尽可能多的字符相匹配。
正则表达式.*用于匹配某个出现零次或更多次的字符。
例如,正则表达式  b.*k可匹配book、back、black、blank和buck。在本例中,将句号(.)和星号(*)组合成一个语法。句号(.)紧挨在星号(*)表达式之前。星号(*)可匹配“b”和“k”之间任意出现零次或更多次的字符。句号(.)用作“b”和“k”之间字符的通配符。在本例中,它表示“b”和“k”之间的任意字符都可以反复出现。
+一或更多,用于匹配在此表达式之前出现一次或更多次的某个字符,可与尽可能多的字符相匹配。
正则表达式.+用于匹配某个出现一次或更多次的字符。
例如,正则表达式bo+.可匹配bob、book和boot。在本例中,将句号(.)和加号(+)组合成一个语法。句号(.)紧挨在加号(+)表达式之后。加号(+)可与出现一次或更多次的字母“o”相匹配。句号(.)用作每个单词的最后一个字符的通配符。在本例中,该字符为“b”、“k”和“t”。
@最小为零或更多,用于匹配在此表达式之前出现零次或更多次的某个字符,可与尽可能少的字符相匹配。
正则表达式.@用于匹配某个出现零次或更多次的字符。
例如,正则表达式  a.@x可匹配“abxbxb”中的“abx”和“acxcxc”中的“acx”。在本例中,将句号(.)和@符号
组合成一个语法。句号(.)紧挨在@符号表达式之前。@符号可与“a”和“x”之间出现零次或更多次的任意字符相匹配。在本例中,句号(.)用作字符“a”和“x”之间的字符“b”和“c”的通配符。
#最小为一或更多,用于匹配在此表达式之前出现一次或更多次的某个字符,可与尽可能少的字符相匹配。
例如,正则表达式si.#er可匹配“sicker”或“silkier”。在本例中,将句号(.)和井号(#)组合成一个语法。句号(.)紧挨在井号(#)表达式之前。井号(#)可与“si”和“er”之间出现一次或更多次的任意字符相匹配。句号(.)用作单词sicker 中字符“c”和“k”的通配符,以及单词silkier中“l”、“k”和“i”的通配符。
[]任何一个属于该集合的字符,用于匹配括号([])内的任意一个字符。可以使用连字符(-)指定字符的范围,例如[a-z]。
例如:
正则表达式c[aou]t可以匹配cat、cot和cut,但不能匹配cet或cit。
正则表达式[0-9]表示匹配任意一个数字。也可以指定多个字母范围。
正则表达式[A-Za-z]表示匹配所有大写和小写字母。
^行首,定位于行首匹配。
例如,正则表达式^When in匹配以“When in”开头且出现于行首的任意字符串,例如“When in the course of human events”或“When in town,call me”。然而,此正则表达式不匹配出现于行首的“What and when in the course of human events”。
$行尾,定位于行尾匹配。
例如,正则表达式professional$可匹配字符串“He is a professional”,但不能匹配字符串“They are a group of professionals”。
^^文件开头,定位于文件开头匹配。仅适用于在源代码或文本文件中搜索文本。
例如,若要匹配文件开头的第一个HTML标记,可使用此正则表达式:^^
$$文件末尾,定位于文件末尾匹配。仅适用于在源代码或文本文件中搜索文本。
例如,若要匹配文件末尾的最后一个HTML标记(标记后没有空格),可使用此正则表达式:$$
|或,表示在两项之间进行选择,即匹配“或”符号(|)前面或后面的表达式。
例如,正则表达式(him|her)匹配下列各项:“it belongs to him”或者“it belongs to her”但不匹配行“it belongs to them”。
\转义特殊字符,用于匹配反斜线(\)后面的字符。这样,就可以查正则表达式语法中使用的字符(如左大括号({)或脱字号(^))或其他一些特殊字符。
例如,使用\$可匹配美元符号($)字符,而不是执行用于“定位于行尾”的正则表达式。同样,使用\.可匹配句号(.)字符,而不是像句号(.)正则表达式一样匹配任意一个字符。
{}标记表达式,对与括号内表达式匹配的文本加标记。可以使用\N在“查”表达式中匹配出现在另一处的标记文本或者将标记文本插入“替换”表达式。
例如,假设要查连续出现两次的单词。若要搜索,请使用
此表达式:{.#}\1
假设连续出现的单词由一个空格隔开,则需要在右大括号(})与反斜线(\)之间添加一个空格。
在本例中,将井号(#)、句号(.)和大括号({})组合成一个语法。在此表达式中,.#表示任何连续的字符。因为这部分表达式位于大括号({})内,所以连续的字符将被加上标记,并被引用为\1。此表达式将查后跟空格以及字符与其完全相同的任意连续字符。
\N 在“查”表达式中第N个标记表达式中,\N匹配由第N 个标记表达式指定的文本,其中N是1到9的数字。
在“替换”表达式中,\N插入由第N个标记表达式匹配的文本,其中N是1到9之间的数字。\0插入整个“查”表达式指定的文本。
例如,假设要查连续出现两次的单词,并使用一个单词替换它们。若要搜索,请使用此表达式:.#}\l
假设连续出现的单词由一个空格隔开,则需要在右大括号(})与反斜线(\)之间添加一个空格。在本例中,将井号(#)、句号(.)和大括号({})组合成一个语法。
若要替换,请使用下列表达式:\l
\1表示在查字符串中的第一对大括号内到的内容。通过在替换操作中使用\1,实际上是将连续出现两次的单词替换为一个单词。
()组表达式,标记子表达式的开始和结束。
子表达式指括在()中的正则表达式,例如表达式:(ha)+。在本例中,将加号(+)与括号()组表达式组合成一个语法。子表达式是(ha),因为它括在括号()内。添加加号(+)后,该表达式可查重复的字母对。加号(+)表示“ha”出现一次或更多次。
此表达式可匹配下列各项:“haha”和“hahaha”。
~x 防止匹配,当x出现在表达式中的此位置时会防止匹配。
例如,正则表达式real~(ity)可匹配“realty”和“really”中的“real”,但不能匹配“reality”中的“real”。
\n 换行符,匹配“代码”视图中的新行,或“设计”视图中的<br>。
语法(\n)是匹配所有换行符的简便方法。
\t 制表符,匹配单个制表符。
例如,如果要查所有位于行首的制表符,可使用此正则表达式:
^\t+
在本例中,将脱字号(^)、加号(+)和制表符(\t)组合成一个语法。脱字号(^)位于单个制表符表达式之前,用于匹配位于行首的所有制表符。加号(+)表示匹配一个或多个制表符。
[^]任何一个不属于该集合的字符,用于匹配不包含在脱字号(^)之后的字符集内的任何字符。
例如,若要匹配范围之外的任何字符,可使用脱字号(^)作为左括号后面的第一个字符。表达式[^269A-Z]匹配除2、6、9以及任何大写字母之外的所有字符。
正则化描述正确的是n 重复表达式,与脱字号(^)之前出现n次的表达式相匹配。
例如,若n为4,表达式[0-9]^4匹配任何4位数序列。在本例中,将字符集([])语法与重复(^n)语法组合,以展示正则表达式的更实用的方法。
:a 字母数字字符,用于匹配表达式[a-zA-Z0-9]。可以使用表达式[a-zA-Z0-9]匹配出现一次的字母(大写或小写)或数字。也称为“字母数字匹配项”。可使用简写表达式:a来代替[a-zA-Z0-9]。
:b 空格,用于匹配代码或文本中的任何空格。
例如,若要匹配行首的单个空格字符,可使用此正则表达式:^:b

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。