字符 ======================= 正则表达式(Regular Expression)是一种文本模式,包括普通字符(如 a 到 z 之间的字母)和特殊字符(称为“元字符”)。 正则表达式使用单个字符串来描述用于匹配某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串操作。 常用符号及描述 ----------------- ======================================== ==================================================================== ============================================= 常用符号 描述 示例 ======================================== ==================================================================== ============================================= \\ 转义 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 . 匹配除换行符( ``\n`` ``\r`` )之外的任何单个字符 \* 匹配前面的子表达式 **零次** 或多次 ``zo*`` 能匹配 z 以及 zoo ;等价于 ``{0,}`` 。 \+ 匹配前面的子表达式 **一次** 或多次 ? 匹配前面的子表达式 **零次** 或 **一次** ``do(es)?`` 可以匹配 do 或 does ;等价于 ``{0,1}`` 。 {n} 匹配 n 次 ``o{2}`` 可以匹配 food ;要匹配 \{ 请使用 ``\{`` 。 {n,} 至少匹配 n 次 {n,m} 匹配 n 到 m 次 \*?, +?, ??, {n}?, {n,}?, {n,m}? 非贪婪匹配 对于字符串 oooo, ``o+?`` 将匹配单个 o,而 ``o+`` 将匹配所有 o。 (pattern) 匹配 pattern 并获取这一匹配 (?:pattern) 非获取匹配 ``industr(?:y|ies)`` 是一个比 ``industry|industries`` 更简略的表达式 (?=pattern) 正向肯定预查(Look Ahead Positive Assertion),非获取匹配 ``Windows(?=95|98|NT|2000)`` 能匹配 Windows2000 中的 Windows ,但不能匹配 Windows3.1 中的 Windows。预查不消耗字符。 (?!pattern) 正向否定预查(Look Ahead Negative Assertion),非获取匹配 ``Windows(?!95|98|NT|2000)`` 能匹配 Windows3.1 中的 Windows ,但不能匹配 Windows2000 中的 Window。 (?<=pattern) 反向肯定预查(Look Behind Positive Assertion),非获取匹配 ``(?<=95|98|NT|2000)Windows`` 能匹配 2000Windows 中的 Windows ,但不能匹配 3.1Windows 中的 Windows。 (?