我正在python上测试一些正则表达式。下面的结果与任何内容都不匹配。我想匹配“Turkey
”,但它甚至没有返回。我花了将近一个小时在这上面,却不明白为什么它不起作用!你知道吗
import re
regex = r'\s*\(aka\s(.*)\s((?:19|20)[0-9][0-9])'
line = " (aka Turkey (1955)) (USA) (short title)"
match = re.search(regex,line)
if match:
print match.groups()
输出:https://repl.it/CfWa
Tags:
你可以做:
^\s*\([^\s]*\s+
匹配从开始Turkey
之前的部分([^\s]+)
匹配Turkey
并将其放入捕获的组中,然后\s+
匹配一个或多个空格示例:
改变一下你所拥有的:
使用
(.*)
而不是([^\(]*?)\s*
这将捕获到开头的所有内容(
甚至多个单词。你知道吗你忘了在年组开始前逃过开篇
(
。你知道吗然而,要使用一个更简单的模式,并考虑到Wolf的评论,并且认为像您试图捕捉的标题一般不止一个词,您可以使用:
r'\s*\(aka\s(.*)\s((?:19|20)[0-9][0-9])'
的问题是,你不能在一年中用括号转义。如果您使用:r'\s*\(aka\s(.*)\s*\((?:19|20)[0-9][0-9]\)'
,您将匹配“Turkey”,因此我建议使用类似r'\s*\(aka\s([^\s]*)\s*\((?:19|20)[0-9][0-9]\)'
的内容。你知道吗相关问题 更多 >
编程相关推荐