2015-08-19 32 views
-4

我需要一個匹配第一個長,第二個長和第三個字符串的正則表達式。 我在下面創建了一個正則表達式,但它僅適用於第一個示例。我試過| OR語句,但無法完成。有任何想法嗎?如何在組中創建OR語句?

我的正則表達式:

(\d+),(\d+),\"(.*)\" 

例子:

1. 85327872,85360639,"AS43754 Asiatech Data Transfer Inc. PLC" 
2. 85360640,85360895,AS65010 
+3

我沒有看到或沒有在所有。另外,這與Python無關。 –

+0

你想要提取什麼? –

+0

@WashingtonGuedes,但是當我這樣做時也選擇了引號。我不需要引號。 –

回答

2

基本上\"?會說可以或不包含引號。然後,在您的匹配組中使用[^"\n]這意味着:任何字符,除引號或新行外。

(\d+),(\d+),\"?([^"\n]*)

Regex live here.


前面的正則表達式的一些意見演變成:

(\d+),(\d+),\"?(.+?)"?$

Regex live here.

+0

我請你原諒,幾天前我無法評論這個答案被接受。我只是想知道......我想這允許奇怪的事情,如打開「沒有關閉它在字符串的末尾.OP提供了兩個例子,但沒有一個這樣的情況下,我錯了,偏執或只是相當困擾:) ? – Leo128

+0

@ Leo128。你說得對,但是看起來不是很奇怪嗎?_https://regex101.com/r/xI4gO9/4_ –

+1

是的,這確實很奇怪......如果一行拼寫85327872,85360639 ,AS43754 Asiatech「Data」Transfer Inc. PLC?這就是爲什麼在我的回答中,我建議OP決定保留還是刪除那些作爲字符串開始/結束分隔符的引號......我是否設法顯示我的觀點? – Leo128