正则表达式获取逗号分隔字符串之间的值

时间:2018-05-31 14:09:32

标签: regex string vb.net split expression

我不会对正则表达式感兴趣,做了相当多的谷歌搜索,但由于某种原因似乎在努力解决这个问题。基本上我有一个字符串:

VALUE1,VALUE2,VALUE3,VALUE4

现在所有想要的都是一个正则表达式,我可以说给我价值2或给我价值3等。

我原本以为我可以做这样的事情来获得第二个值

,.*,,

这是最后的等等

,,,.*

必须有一个简单的解决方案...还应该添加这一点必须通过正则表达式完成!

1 个答案:

答案 0 :(得分:3)

我认为你需要的是逗号分隔符上的正则表达式分割:

Dim input As String = "VALUE1,VALUE2,VALUE3,VALUE4"
Dim terms() As String = Regex.Split(input, ",\s*")
For Each term As String In terms
    Console.WriteLine(term)
Next

Demo

请注意,我在,\s*上拆分,以防每个逗号后面都有一些空格。

我们可以尝试为您提供一个原始正则表达式,它可以在给定位置提取一个术语,但即使这样也需要知道您正在使用哪个工具,以了解如何访问捕获组。由于您使用的是VB.net,因此使用正则表达式拆分字符串可能就好了。

修改

根据评论,或许以下的正则表达式是您正在寻找的:

^(?:.*?,){3}(.*?)(?=,|$).*$

Demo