所以我新的正则表达式在python中。 我正在一个csv文件中提取所有行。 现在我无法进行搜索。我想找到这[[*]],*之间的任何字符。它任何帮助 目前,我在环正则表达式与特殊字符
searchObj = re.match(r'\[\[(.*)\]\]', str(row), re.M|re.I)
所以我新的正则表达式在python中。 我正在一个csv文件中提取所有行。 现在我无法进行搜索。我想找到这[[*]],*之间的任何字符。它任何帮助 目前,我在环正则表达式与特殊字符
searchObj = re.match(r'\[\[(.*)\]\]', str(row), re.M|re.I)
如上所述,findall
解决方案应该正常工作?你需要给出一个示例行,然后我们可以看到它为什么不适合你。假设您已经阅读您的CSV行成列的列表,然后下面应该可以看到:
row = ["Col1", "Col2 has [[foo]] in it", "Col3", "Col4 has [[foo]]] and [[bar]]"]
for col in row:
print re.findall(r'\[\[(.*?)\]\]', col, re.M|re.I)
,并提供:
[]
['foo']
[]
['foo', 'bar']
使用re.findall
以此来提取这些括号内的文本presnt,因为re.match
试图从字符串的开头相匹配。
find_lst = re.findall(r'\[\[(.*?)\]\]', str(row), re.M|re.I)
OR
使用re.search
find_obj = re.search(r'\[\[(.*?)\]\]', str(row), re.M|re.I)
searchObj = re.match(r'.*?\[\[(.*?)\]\]', str(row), re.M|re.I).groups()
match
从beginning.So比赛,你可以从开始匹配,并抓住该组。
这没有奏效。我需要在[[和]]之间查找文本,我正在用正则表达式做错。 –
是'[[]]'包含新的行字符之间的文本?如果是,则使用're.DOTALL'来代替're.M' –
提供确切的输入。 –