所以我新的正則表達式在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' –
提供確切的輸入。 –