我在pdf文件中搜索关键字,所以我正在尝试搜索/ AA或/ Acroform,如下所示:
import re
l = "/Acroform "
s = "/Acroform is what I'm looking for"
if re.search (r"\b"+l.rstrip()+r"\b",s):
print "yes"
为什么我没有得到“是”。我希望“/”成为我正在寻找的关键字的一部分(如果存在的话)。 任何人都可以帮助我吗?
答案 0 :(得分:0)
\b
仅在\w
(单词)和\W
(非单词)字符之间匹配,反之亦然,或者当{ {1}}字符位于字符串的边缘(开头或结尾)。
您的字符串以\w
正斜杠,非单词字符开头,因此/
。 \W
永远不会在字符串的开头和\b
之间匹配。不要在这里使用/
,对单词字符使用明确的否定后视:
\b
re.search(r'(?<!\w){}\b'.format(re.escape(l)), s)
语法定义了一个负面的后视;与(?<!...)
类似,它匹配字符串中的位置。如果前面的字符(如果有的话)不是一个单词字符,那么它只会匹配。
我在这里使用了字符串格式而不是连接,并使用\b
来确保正在搜索的字符串中的任何正则表达式元字符都已正确转义。
演示:
re.escape()