1

我想做的是允许用户输入诸如:“Torsion ? Group”、通配符和所有(通配符是一个完整的单词)之类的内容,并根据是否找到返回真假。那么我会有诸如 \b*\b 之类的东西吗?Python 手册说 \bfoo\b 将匹配 "something foo something else" 和 "foo." 形式的字符串。我遇到的问题是我什至试图开始简单地修改我发现的另一个示例:

inputstring = 'What is a Torsion Abelian Group (TAB)?' 
str1 = "Abelian"
output = re.search("Torsion" + \bstr1\b + "Group", inputstring)
print output

但是我得到了输出:

output = re.search("Torsion" + \bstr1\b + "Group", inputstring)
                                ^
SyntaxError: unexpected character after line continuation character

因此,我很难找到一个已知的字符串,更不用说通配符了。任何关于任何一个的想法都将非常感激。

谢谢,

布赖恩

4

1 回答 1

0

Python 将不知道如何处理您的两个\b,并假定您有一个名为 的变量\bstr1\b,而不是str1. 您将需要分隔\band str1,并用引号括起正则表达式语法或删除它们。您还应该在此处仔细检查以确保这 \b是您应该使用的语法。

output = re.search("Torsion " + str1 + " Group", inputstring)

或者更清洁

output = re.search("Torsion %s Group" % str1, inputstring)

这是完整的代码:

inputstring = 'What is a Torsion Abelian Group (TAB)?'
str1 = "Abelian"
output = re.search("Torsion %s Group" % str1, inputstring)
if output:
    print str(output.group(0))

并返回以下输出:

Torsion Abelian Group
于 2013-04-07T21:22:40.680 回答