VB.NET正则表达式替换字符串

时间:2013-05-16 14:53:16

标签: regex vb.net replace

我有一个字符串,我需要在VB.Net代码中使用通配符来替换它。 我发现我可能需要使用正则表达式,但我是新手。

我想更改以下字符串:

  • John;-4;5

  • John;20;15

  • John;-255;2

其中-4;5等字符串的变化部分为newValue

我使用了标准字符串替换,但似乎不起作用:

newString = oldString.Replace(oldString & ";" & "*" & ";" & "*", "newValue")

非常感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

尝试:

ResultString = Regex.Replace(SubjectString, "(-*\d+;*)+", "newValue")

这将替换任何出现的数字(带或不带-ve符号)后跟;或不。因此您的样本数据

John;-4;5
John;20;15
John;-255;2
John;123;234;5;32;45;543

将成为

John;newValue

答案 1 :(得分:1)

使用具有以下表达式的多行正则表达式

;??()[ - +] \ B [0-9] [0-9] + \ B'/ P>

所以也许这样的东西用空字符串替换所有实例,我没有测试过这个因为我现在不能但是如果这个失败那么用单行代替多行

Dim SourceString as string = "John;-4;5" & vbcrlf & "John;20;15"
Dim ReplaceString as string = ""
Dim result As String =   Regex.Replace(SourceString,";(.*)[-+]?\b[0-9]*\.?[0-9]+\b",ReplaceString,RegexOptions.IgnoreCase or RegexOptions.Multiline)

答案 2 :(得分:0)

你总是可以尝试这个

newString = 
oldString.Replace(oldString,"newValue").replace(";","NewVal").replace("*","Newval)

这将只通过替换oldstring中的字符

我会试试这个:

dim val as string = "John;-4;5" ' Or any other string like this

Dim arr() As String = val.Split(";")

'manipulate string from here 

'arr(0) is John
'arr(1) is -4
'arr(2) is -5

然后构建新的值字符串

val = arr(0) & ";" & "newval" & ";" & "newVal"