Python判断写的正则表达式是否正确


python的正则表达式光凭字面上理解还是不容易理解并灵活运用,要掌握并regex的用法,还是打开编辑器多写多练习。

那么问题来了,怎么判断自己写的正则表达式是正确的呢?

re.match()函数

在源码中,该函数的定义是:

def match(pattern, string, flags=0):
    """Try to apply the pattern at the start of the string, returning
    a Match object, or None if no match was found."""
    return _compile(pattern, flags).match(string)

函数接受一个匹配模式(pattern)、匹配的字符串(string)。然后将模式对字符串进行匹配,并返回匹配的对象,如果不存在匹配则返回None

使用

如果只使用re.match()函数,则只会返回一个对象:

>>> import re
>>> print(re.match('a*b*', 'abb'))

re.Match object; span=(0, 3), match='abb'

结果中:

  • match='abb':说明字符串中匹配的有abb,如果你填写的字符创是abbcc, 返回的也是match='abb'

将结果转化为布尔值

上面返回的结果不太直白, 我们可以将结果直接转化为bool值True或者False,使用bool()函数:

>>> import re
>>> print(bool(re.match('a*b*', 'abb')))

True

这样就可以简单的看到我们写的正则表达式是否正确了。


相关

Python 正则表达式

Python 正则表达式符号大全