标签:
>>> import re >>> p = re.compile(‘ab*‘) # a 和 一到正无穷个b ┌──────────────────────────────────────────────────────────────┐ │ re.compile: (pattern, flags=0) │ │ Compile a regular expression pattern, returning a pattern ob │ │ ject. │ └──────────────────────────────────────────────────────────────┘
1 >>> p = re.compile(‘ab*‘,re.IGNORECASE)
正则表达式作为一个字符串参数传给了 re.compile(). 由于正则表达式并不是 python的核心部分 , 因此没有为他提供特殊的语法支持 , 所以正则表达式只能 以字符串的形式表示 . (有些应用根本就不需要正则表达式 , 所以python社区的小伙伴们认为没有必要将其纳入python的核心 ) 相反 , re 模块仅仅是作为 C 的扩展模块包含在python中 , 就像socket模块和zlib模块
正因为 \ 的强大 , 和功能的多 , 所以 \ 也有很多麻烦的地方 .
匹配字符 | 匹配阶段 | ||||||
\select | 需要匹配的字符串 | ||||||
\\select | 正则表达式需要用\\来表示\ | ||||||
\\\\select | 不巧python也需要用\\来表示\ | ||||||
1*2*2 所以就用了四个\ |
简言之为了匹配反斜杠这个字符我们需要在字符串中使用四个反斜杠才行 , 这在正则表达式中本来 \ 久用的频繁 , 这样就更多了 . 吓人 !
有问题就有接近越方案 , 方法就是用原始字符串来表示正则表达式 . ( r‘ xxx ‘ Do you Remember ?)
正则字符串 | 原始字符串 | ||||||
"ab*" | r"ab*" | ||||||
"\\\\select" | r"\\select" | ||||||
"\\w+\\s+\\1" | r"\w+\s+\1" | ||||||
python也需要用\\来表示\ 哦 |
标签:
原文地址:http://www.cnblogs.com/A-FM/p/5812035.html