python - Re.match() 总是返回 none

标签 python regex

我觉得有点傻,但它不起作用:

import re

a = " ebrj wjrbw erjwek wekjb rjERJK ABB RAEJKE BWE RWEJBEWJ B KREWBJ BWERBJ32J3B23B J BJ235JK BJJ523 2"

print re.match(ur'/(wekjb|ABB)/',a)
if re.match(ur'/(wekjb|ABB)/',a):
    print 'success'

如果用户给定的 a 是 unicode,我有 ur'。如果 wekjbABB 在字符串中,我想打印成功,但我总是得到 None 作为 match.

最佳答案

re.match 隐式锚定到字符串的开头。如果要在字符串中搜索可以位于其中任何位置的子字符串,则需要使用 re.search :

import re

a = " ebrj wjrbw erjwek wekjb rjERJK ABB RAEJKE BWE RWEJBEWJ B KREWBJ BWERBJ32J3B23B J BJ235JK BJJ523 2"

print re.search(ur'(wekjb|ABB)',a).group()
if re.search(ur'(wekjb|ABB)',a):
    print 'success'

输出:

wekjb
success

此外,Python 正则表达式不需要 /在开始和结束。

最后,我添加了 .group()print 的结尾行,因为我认为这就是你想要的。否则,你会得到类似 <_sre.SRE_Match object at 0x01812220> 的东西,这不是很有用。

关于python - Re.match() 总是返回 none,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19871253/

相关文章:

python - `input` 和 `raw_input` 之间的差异

python - MARIADB - Python 连接问题

python - 获取所有自定义标记的列表

python - SciPy - 计算对称矩阵中特定特征值的特征向量

python - 用python逐句拆分列表

python - 为什么我抓取的 Excel 文件中有打开的单元格?

regex - 我如何跟踪某些元素所属的分组?

Javascript,字符串格式 : I need the first 4 letters of a string, 小写,省略空格,删除符号

Java 字符串/正则表达式替换

用于在字符串中搜索的 Java 正则表达式