正则表达式总结
正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
操作方法
- 01
使用正则表达式,就可以:1. 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存 在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。2. 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删 除,或者替换为别的文字。3. 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文 字。 例如 如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。
- 02
字符描述: \:转义字符^ :匹配输入的开始位置。$ :匹配输入的结尾。* :匹配前一个字符零次或几次。 例如, "zo* "可以匹配 "z "、 "zoo "匹配o。+ :匹配前一个字符一次或多次。 例如, "zo+ "可以匹配 "zoo ",但不匹配 "z "。? :匹配前一个字符零次或一次。 例如, "a?ve? "可以匹配 "never "中的 "ve "。. :匹配换行符以外的任何字符。x|y:匹配 x 或 y。 例如 "z|food " 可匹配 "z " 或 "food "。" (z|f)ood " 匹配 "zood" 或 "food "。{n}:n为非负的整数。匹配恰好n次。例如, "o{2} " 不能与 "Bob 中的 "o " 匹配,但 是可以与 "foooood "中的前两个o匹配。{n,} :n 为非负的整数。匹配至少n次。例如, "o{2,} "不匹配 "Bob "中的 "o ",但是 匹配 "foooood "中所有的o。 "o{1,} "等价于 "o+ "。 "o{0,} "等价于 "o* "。{n,m} :m 和 n 为非负的整数。匹配至少 n 次,至多 m 次。例如, "o{1,3} " 匹配 "fooooood "中前三个o。 "o{0,1} "等价于 "o? "。[xyz] :一个字符集。与括号中字符的其中之一匹配。例如, "[abc] " 匹配 "plain "中 的 "a "。[^xyz] :一个否定的字符集。匹配不在此括号中的任何字符。例如, "[^abc] " 可以匹配 "plain "中的 "p ".[a-z] :表示某个范围内的字符。与指定区间内的任何字符匹配。例如, "[a-z] "匹配 "a "与 "z "之间的任何一个小写字母字符。[^m-z] :否定的字符区间。与不在指定区间内的字符匹配。例如, "[m-z] "与不在 "m "到 "z "之间的任何字符匹配。\b :与单词的边界匹配,即单词与空格之间的位置。例如, "er\b " 与 "never "中的 "er "匹配,但是不匹配 "verb "中的 "er "。\B :与非单词边界匹配。 "ea*r\B "与 "never early "中的 "ear "匹配。\d :与一个数字字符匹配。等价于[0-9]。\D :与非数字的字符匹配。等价于[^0-9]。\f :与分页符匹配。\n :与换行符字符匹配。\r :与回车字符匹配。\s :与任何白字符匹配,包括空格、制表符、分页符等。等价于 "[ \f\n\r\t\v] "。\S :与任何非空白的字符匹配。等价于 "[^ \f\n\r\t\v] "。\t :与制表符匹配。\v :与垂直制表符匹配。\w :与任何单词字符匹配,包括下划线。等价于 "[A-Za-z0-9_] "。\W :与任何非单词字符匹配。等价于 "[^A-Za-z0-9_] "。\num :匹配 num个,其中 num 为一个正整数。引用回到记住的匹配。例如, "(.)\1 "匹 配两个连续的相同的字符。\n:匹配 n,其中n 是一个八进制换码值。八进制换码值必须是 1, 2 或 3 个数字长。 例如, "\11 " 和 "\011 " 都与一个制表符匹配。"\0011 "等价于 "\001 "与 "1 "。 八进制换码值不得超过 256。否则,只有前两个字符被视为表达式的一部分。允许在正 则表达式中使用ASCII码。\xn:匹配n,其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。 例如, "\x41 "匹配 "A "。 "\x041 "等价于 "\x04 " 和 "1 "。允许在正则表达式 中使用 ASCII 码。