如果"Who acted as (?P<role>.*) in (?P<movie>.*)"
是模板
我想匹配像"Who acted as tony montana in Scarface"
这样的查询。
如果角色名称中有&#34; in&#34;这里或如果电影名称中有&#34; in&#34;,则正则表达式匹配将出错。
例如:"Who acted as k in men in black" will give "k in men" as role.
可能是一种非贪婪的方法适用于此查询,但如果电影中包含单词&#34;在&#34;中它将会折腾。 我如何在这里获得所有可能的解释?
答案 0 :(得分:0)
根据'a in b in c in d'
之类的短语,这将通过单词in
生成所有可能的分区:
words = phrase.split()
for n, w in enumerate(words):
if w == 'in':
print '(%s) in (%s) ' % (
' '.join(words[:n]),
' '.join(words[n+1:]))
对于您的具体问题,如果短语中有三个in
s,则“中间”解释((a in b) in (c in d)
)最可能是正确的,但有两个in
s无法通过文本操作来解决这个问题,因为“左”和“右”分区同样可能,请考虑:
Who acted as jeebs in men in black
Who acted as woman in red in matrix
您必须使用NLP或数据库驱动的方法来正确解析它。