我有一个字符串,我需要在 VB.Net 代码中使用通配符来替换它。我发现我可能需要使用正则表达式,但我是新手。
我想更改以下字符串:
John;-4;5
John;20;15
John;-255;2
其中-4;5
etc 是字符串的变化部分newValue
我使用了标准的字符串替换,但这似乎不起作用:
newString = oldString.Replace(oldString & ";" & "*" & ";" & "*", "newValue")
非常感谢您的帮助。
尝试:
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
使用带有以下表达式的多行正则表达式
;(. )[-+]?\b[0-9] .?[0-9]+\b
所以也许像这样用空白字符串替换所有实例,我还没有测试过这个,因为我现在不能,但是如果失败了,那么用单行替换多行
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)
你总是可以试试这个
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"