1

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

我想更改以下字符串:

  • John;-4;5

  • John;20;15

  • John;-255;2

其中-4;5etc 是字符串的变化部分newValue

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

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

非常感谢您的帮助。

4

3 回答 3

6

尝试:

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
于 2013-05-16T15:12:40.880 回答
1

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

;(. )[-+]?\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)
于 2013-05-16T15:05:28.160 回答
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"
于 2013-05-16T15:55:36.687 回答