VB.net中的正则表达式问题,我该如何匹配?

时间:2011-04-06 20:45:48

标签: regex vb.net string

我永远不懂如何创建正则表达式,现在我需要一个非常好的。如果有人知道如何做到这一点会很棒。

我需要将这些示例与正则表达式匹配,然后在第三个逗号之前附加文本: 例子:

1

  

Örjan,,; Svensson ,,,,,然后呢   像这样继续

需要成为:

  

Örjan,,; SvenssonNEWTEXTHERE ,,,,,和   然后就像这样继续

2

  

Patric,The-Man,Black ,,,,,,,,,然后   它继续像这样

需要成为:

  

Patric,The-Man,BlackNEWTEXTHERE ,,,,,,,,,然后   它继续像这样

如果我使用通配符来执行此操作,它将如下所示:

*,*,*,*

我想在最后一个逗号之前添加文本。但我仍然需要整个字符串,所以文本可以添加到那里我不希望添加的文本后面的字符消失。

这是一个.CSV联系人文件btw,以便您更好地理解文本的结构。

这可能吗?

1 个答案:

答案 0 :(得分:1)

CSV字段的正则表达式,即“任何不包含逗号的文本”,为[^,]*,如果要跳到第三个字段的末尾,则使用

[^,]*,[^,]*,[^,]*

现在,如果要修改字符串,可以使用

之类的内容
Dim str = "Örjan,,;Svensson,,,,, and then it continues like this"
Dim re As New Regex("[^,]*,[^,]*,[^,]*")
Dim pos = re.Match(str).Length

现在,你已经获得了将附加字符串放在pos中的位置,你可以用它做任何你想做的事。

请注意,CSV文件通常包含包含文字逗号且需要引用的字段(例如Patric,"The,Man",Black,...)。它甚至可能包含一个换行符,这使得很难正确解析,特别是对于正则表达式(并且上面的代码不适用于这样的数据)。您能确定您的CSV文件不包含带引号的字段吗?