正则表达式语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过使用正则表达式,可以在各种文本中执行繁复的查找和替换操作。如果您不知道所要查找的确切文本或代码,或者要查找文本或代码字符串的多个匹配项,则可以使用正表达式。
正则表达式是一种文本模式,它可以描述所要查找的文本的一种或多种变体。正则表达式由特定字符(如字母“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在“查找”表达式中匹配出现在另一处的标记文本或者将标记文本插入“替换”表达式。
例如,假设要查找连续出现两次的单词。若要搜索,请使用