正则表达式提取字符串

时间:2016-03-07 15:52:43

标签: regex email expression regex-greedy

我有以下表达式:

MN = Abc123,MN = sssa,MN = abc adsa 1,MN =&3amsd'amé,MN = dat,CB = ds,CB = ds

如何逐一提取 MN = 后面的表达式? 例如:首先我要提取 Abc123 ,其次我要 sssa 等等......

感谢您的回答!

2 个答案:

答案 0 :(得分:0)

使用捕获组:

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

然后从匹配对象中获取第一组。

或者,如果您所处理的语言支持环视,您可以使用正面的后视来直接匹配预期的部分:

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

答案 1 :(得分:0)

如果您的正则表达式环境支持lookbehind,您可以使用此正则表达式提取所需信息:

  

支持Lookbehind的环境

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

环境不支持Lookbehind

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

您想要的结果将存储在第1组,即$1

根据您的输入字符串,这是结果

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

查看实时演示here