正则表达式需要解析字符串

时间:2016-09-18 04:00:46

标签: regex vb.net parsing delimiter

我正在处理政府措施,并且需要根据与fda关联的发布机构的分隔符解析包含变量信息的字符串。

我试图在分隔符后检索分隔符和值。我已经搜索了几个小时来找到一个正则表达式解决方案来检索分隔符及其后面的值,虽然似乎有帖子可以处理这个,但代码找到了在后期避风港工作。

此任务的一个主要问题是分隔符通常具有重复的字符。例如:使用分隔符,例如" ="," =,"," / ="。在这种情况下,我需要区分" ="和" =,"。

是否有可以处理所有这一切的正则表达式?

以下是字符串的示例:

=/A9999XYZ=>100T0479&,1Blah

请注意分隔符为:

"=/"
"=>'
"&,1"

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用像这样的正则表达式

(=/|=>|&,1)|(\w+)

Regular expression visualization

<强> Working demo

这个想法是第一组包含分隔符,第二组包含内容。我假设内容可以是单词字符(az和带有下划线的数字。然后,您必须获取每个捕获组的内容。

答案 1 :(得分:0)

您需要分别捕获分隔符和值作为组1和2。

如果您的值都是字母数字,请使用:

(&,1|\W+)(\w+)

请参阅live demo

如果您的值可以包含非字母数字字符,则会变得复杂:

(=/|=>|=,|=|&,1)((?:.(?!=/|=>|=,|=|&,1))+.)

请参阅live demo

首先将分隔符编码最长,例如&#34; =,&#34;在&#34; =&#34;之前,否则从左到右匹配的交替将匹配&#34; =&#34;并且逗号将成为价值的一部分。

这使用负向前看来停止匹配经过下一个分隔符。