2017-09-05 38 views
-3

內的多個表達我的Python腳本,它需要像蟒蛇regular_expression_表達

"\[.*[ERROR].*\n.*\n.*\n.*/\n.*is for multiple time/[\]]{2}" 

請讓我知道如何採取"\n."多時間表達......我被陷在這個地方

回答

0

多行標誌可用,讓你匹配多行。

https://docs.python.org/2/library/re.html#re.MULTILINE

重。 MULTILINE

指定時,模式字符'^'匹配字符串的開頭和每行的開頭(緊跟在每個換行符之後);並且模式字符'$'匹配字符串的末尾和每行末尾(緊接在每個換行符之前)。默認情況下,'^'只匹配字符串的開頭,'$'只匹配字符串的末尾,緊接在字符串末尾的換行符(如果有的話)之前。

您還可以訪問DOTALL,將有匹配即使換行

re。 DOTALL

使'。'特殊字符完全匹配任何字符,包括換行符;沒有這個標誌,'。'將匹配除換行符之外的任何內容。

根據你的匹配,這兩個標誌讓你選擇如何處理換行符。在你的情況,你可能需要調整你的模式是這樣的:「*」

text = '\n[ [ERROR]\n\nsome text\nis for multiple time]' 
re.findall("\[.*\[ERROR\].*is for multiple time\]", text, re.DOTALL) 
# result: ['[ [ERROR]\n\nsome text\nis for multiple time]'] 
+0

其實它給了錯誤的輸出。由於第一本身採取的** ** re.DOTALL,並給予完整的字符串,但我希望最後一次「。*」多次也是\ n – Kamal