2016-03-07 125 views
0

我有以下表達式:正則表達式表達式提取字符串

MN = ABC123,MN = SSSA,MN = ABC ADSA 1,MN = & 3ams D'AME,MN = DAT,CB = DS,CB = ds

我該如何提取一個接一個的表達式MN =? 如:首先,我要提取ABC123,其次我wnat SSSA等等...

感謝您的回答!

+0

您正在使用任何特定的編程語言正則表達式?蟒蛇,Java,JavaScript等? – Saleem

+0

你在哪裏使用正則表達式?任何特定的編輯? – Saleem

回答

0

使用捕獲組:

"[A-Z]{2}=([^,]+)" 

然後得到第一組形成的匹配對象。

或者,如果你正在處理的語言支持環視你可以以直接符合預期的部分使用正回顧後:

"(?<=[A-Z]{2}=)[^,]+" 
+0

感謝您的回答Kasramvd! 從我所看到的它不支持向後看...說實話,我不知道這實際上是什麼意思。 捕獲組似乎工作。它刪除MN =,但它仍然保持CB = ... – Alex

+0

此外,它刪除所有OU =,但我想提取表達式的每個部分: – Alex

+0

我該怎麼做? 1st我想要有Abc123,然後我想要薩莎等等。 我該怎麼做。我想我需要使用類似$ 1的東西,但我對此不熟悉... – Alex

0

如果您正則表達式的環境支持回顧後,你可以提取與此正則表達式所希望的信息:

環境支撐回顧後

(?<=MN=)(.*?)(?=,) 

環境不配套回顧後

(?:MN=)(.*?)(?=,) 

你期望的結果將存儲在第1組,又名$1

根據您輸入的字符串,這裏是導致

Abc123 
sssa 
abc adsa 1 
&3ams d'amé 
dat 

查看現場演示here

+0

感謝Saleem的輸入。 它似乎不支持向後看。 我需要劃分表達式,然後使用類似$ 1的東西提取每個部分...我不太熟悉正則表達式不幸的是:( – Alex

+0

沒關係,請查看更新的版本但除非您提及您的編程語言或特定文本編輯器,很難推薦正則表達式的正確變體。 – Saleem