正则表达式
正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
我们判断一个字符串是否符合规则的方法是:
创建一个用于匹配的正则表达式
用该正则表达式去匹配字符串判断是否合法。
因为正则表达式也是用字符串表示的,所以,我们要首先了解如何用字符来描述字符。
特别字符 | 描述 |
---|---|
[ ] | [amk] will match 'a', 'm', or 'k'. [a-z] [0-9A-Fa-f] 表示范围匹配,一个[]内有多个范围时只会从某一个范围中匹配。[0-5][0-9] (+*) 在[]中失去特殊含义 [(+*)] 将会匹配'(', '+', '*', or ')'. \w or \S等在[] 可以使用 如果[]内的第一个字符是^,那么表示except。[^5] will match any character except '5'。如果不是第一个字符那么^失去特殊含义 |
( ) | 标记一个子表达式(Group)的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 |
* | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 |
+ | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 |
. | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。标志re.DOTALL表示.可以匹配\n |
? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 |
\ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 |
^ | 匹配输入字符串的开始位置 |