2015-10-19 54 views
-1

我如何匹配所有的換行字符\ n不是由「在正則表達式 包圍,例如:正則表達式 n不是用雙引號包圍

應該符合這些新行:

"2547026616" 
79587329 
,"A","2547026616 
"79587329"," 

但不應與這些(除了最後\ n):

"254702661679587329" 
"A" 
"254702661679587329" 
+1

您使用哪種編程語言? –

+0

你的問題對我沒有太大的意義。 –

+0

沒有特定的語言只是尋找一般的正則表達式。對不起,什麼不清楚?我很樂意澄清 –

回答

0

此正則表達式可能是你在找什麼:

(?:(?<!")\n(?!"))|(?:(?<=")\n(?!"))|(?:(?<!")\n(?=")) 

這將捕捉任何前面沒有引號和/或後面跟着引號的換行符,它使用負面和正面預讀和後視,您可以閱讀關於它們的信息more here。根據你的編程語言,這些可能不被支持,和/或你可能需要在正則表達式中做一些轉義。

這是example on regex101,我用x\n,但這只是爲了便於顯示匹配。

+0

這是完美的!感謝您的鏈接 –

0

試試這個:

([^"]\n.?|.?\n[^"]) 

它周圍的\ n以及(如果存在的話)

如果你也想在最後一行結束與一個雙引號,即使它的2個字符相匹配後面沒有\ n,則正則表達式擴展到:

([^"](\n.?|$)|.?\n[^"]) 

...如果第一行必須以雙引號開始,然後擴展到:

([^"](\n.?|$)|(^|.?\n)[^"]) 
相關問題