我需要一个python正则表达式来检查字符串中是否存在单词。字符串可能会用逗号分隔。
举个例子,
line = 'This,is,a,sample,string'
我想搜索基于“样本”,这将返回真。我不擅长使用reg ex,所以当我查看python文档时,我看到了类似这样的东西
import re
re.match(r'sample', line)
但我不知道为什么要匹配的文本前有一个'r‘。有没有人能帮我写正则表达式?
发布于 2013-10-10 23:32:58
您确定需要一个正则表达式吗?看起来你只需要知道一个单词是否出现在字符串中,所以你可以这样做:
>>> line = 'This,is,a,sample,string'
>>> "sample" in line
True
发布于 2013-10-10 23:32:04
R代表一个原始字符串,所以像\这样的东西将被Python自动转义。
通常,如果您希望您的模式包含诸如反斜杠之类的内容,则需要使用另一个反斜杠对其进行转义。原始字符串消除了这个问题。
在你的情况下,这并不重要,但这是一个好习惯,否则\b之类的东西会在你背后咬你,如果你不小心的话(会被解释为退格字符,而不是单词边界)
根据re.match与re.search的对比,这里有一个例子将为您阐明这一点:
>>> import re
>>> testString = 'hello world'
>>> re.match('hello', testString)
<_sre.SRE_Match object at 0x015920C8>
>>> re.search('hello', testString)
<_sre.SRE_Match object at 0x02405560>
>>> re.match('world', testString)
>>> re.search('world', testString)
<_sre.SRE_Match object at 0x015920C8>
因此,搜索将在任何位置找到匹配,匹配将仅从开头开始
发布于 2013-10-16 01:09:50
正如其他每个人都提到的,最好使用"in“运算符,它也可以作用于列表:
line = "This,is,a,sample,string"
lst = ['This', 'sample']
for i in lst:
i in line
>> True
>> True
https://stackoverflow.com/questions/19300020
复制相似问题