正则表达式,用于提取某些指定格式的子字符串,这些子字符串不适用于所有可能性

时间:2015-06-21 08:41:04

标签: c# asp.net .net regex string

继续我之前的问题:Need regular expression that extracts sub-strings that are in some specified format。那里建议的解决方案解决了我的问题,但并不完全。我遇到了另一个字符串示例,必须从中提取以下格式的子字符串:

  

@ [这里有任何角色]。[这里有任何角色]。[这里有任何角色] .......等等。

例如,我有一个字符串:

  

我的位置是@ [XYZ大陆]。[XYZ国家]。[XYZ州]。[XYZ城市]。[XYZ街]在地图上。随时欢迎您。

以前的解决方案在此字符串上运行正常。输出:

@[XYZ Continent].[XYZ Country].[XYZ State].[XYZ City].[XYZ Street]

但该解决方案仅检查+和子字符串外的空格(CLICK HERE TO SEE DEMO)。但我想要的是,无论是字母数字,空格还是其他特殊字符,都必须忽略子字符串的左右两边。例如:

  

Hello @ [XYZ Continent1]。[XYZ Country1] + @ [XYZ Continent2]。[XYZ Country2] 1 @ [XYZ Continent3]。[XYZ Country3]那里。

输出必须是:

@[XYZ Continent1].[XYZ Country1]
@[XYZ Continent2].[XYZ Country2]
@[XYZ Continent3].[XYZ Country3]

上一个问题的解决方案:

(?<!\w)@(\w+\b|\[.*?\](?=[\s+]|$))

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

{{1}}

请参阅DEMO