2015-07-10 189 views
0

所以我新的正則表達式在python中。 我正在一個csv文件中提取所有行。 現在我無法進行搜索。我想找到這[[*]],*之間的任何字符。它任何幫助 目前,我在環正則表達式與特殊字符

searchObj = re.match(r'\[\[(.*)\]\]', str(row), re.M|re.I) 

回答

0

如上所述,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'] 
1

使用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) 
+0

這沒有奏效。我需要在[[和]]之間查找文本,我正在用正則表達式做錯。 –

+0

是'[[]]'包含新的行字符之間的文本?如果是,則使用're.DOTALL'來代替're.M' –

+0

提供確切的輸入。 –

0
searchObj = re.match(r'.*?\[\[(.*?)\]\]', str(row), re.M|re.I).groups() 

match從beginning.So比賽,你可以從開始匹配,並抓住該組。

相關問題