Vb.net 拆分字符串以访问其中的整数

Vb.net 拆分字符串以访问其中的整数,vb.net,Vb.net,我有一个字符串”,我想访问该字符串中的53并对其进行一些添加,然后将答案添加回该字符串。我一直在考虑这个问题,不确定是否可以用正则表达式来实现?有人能帮我吗 谢谢。请查看。正则表达式看起来非常适合解决此特定问题: \d+ 将匹配一个或多个数字 Int32.Parse(Regex.Match("<PinX F='53mm'></PinX>", @"\d+").Value) Int32.Parse(Regex.Match(“,@”\d+”).Value) 将返回53 是

我有一个字符串
,我想访问该字符串中的53并对其进行一些添加,然后将答案添加回该字符串。我一直在考虑这个问题,不确定是否可以用正则表达式来实现?有人能帮我吗


谢谢。

请查看。

正则表达式看起来非常适合解决此特定问题:

\d+
将匹配一个或多个数字

Int32.Parse(Regex.Match("<PinX F='53mm'></PinX>", @"\d+").Value)
Int32.Parse(Regex.Match(“,@”\d+”).Value)

将返回53

是的,可以使用正则表达式。这将获取数字,将它们解析为一个数字,向其中添加一个数字,然后将其放回字符串中(也就是说,结果实际上是一个新字符串,因为字符串是不可变的)


在这种情况下,是的
“'(.*?”
然后访问第一个组,但如果这是较大xml的一部分,则不应使用正则表达式。您应该利用.net中内置的xml解析器,使用xsd查找属性并获取值。

或者,这里有一个小例程

' Set testing string
Dim s As String = "<PinX F='53mm'></PinX>"

' find first occurence of CHAR ( ' )
Dim a As Integer = s.IndexOf("'")
' find last occurence of CHAR ( ' )
Dim b As Integer = s.LastIndexOf("'")

' get substring "53mm" from string
Dim substring As String = s.Substring(a, b - a)

' get integer values from substring
Dim length As Integer = substring.Length
Dim c As Char = Nothing
Dim result As String = Nothing
For i = 1 To length - 1
    c = substring.Chars(i)
    If IsNumeric(c) Then
        result = result & c
    End If
Next

Console.WriteLine(Int32.Parse(result))
Console.ReadLine()
”设置测试字符串
Dim s As String=“”
'查找第一个出现的字符(')
将a调整为整数=s.IndexOf(“”)
'查找上次出现的字符(')
尺寸b为整数=s.LastIndexOf(“”)
'从字符串中获取子字符串“53mm”
作为字符串的Dim子字符串=s。子字符串(a,b-a)
'从子字符串获取整数值
作为整数的Dim长度=子字符串.length
Dim c As Char=Nothing
将结果设置为字符串=无
对于i=1到长度-1
c=子串字符(i)
如果是数字(c),那么
结果=结果&c
如果结束
下一个
Console.WriteLine(Int32.Parse(result))
Console.ReadLine()

为什么要对这个简单字符串使用HAP?还有其他方法吗?@Oded,使用HAP可以改变数据结构。正则表达式和子字符串解决方案依赖于数据是一个常量结构。@Ashburaczenko-我知道HAP,并在需要的地方使用它。这里看起来有些过分。没有任何迹象表明格式会改变此外,即使使用HAP,也需要再次解析属性值(因为HAP将返回“53mm”,而不是数值)抱歉,不太熟悉正则表达式,但是M代表什么?@斯蒂芬雷尼:这是一个处理每一个匹配的方法的lambda表达式。<代码> m <代码>是一个参数,用于<代码> MatkExalpter 方法,所以它将是类型<代码>匹配<代码>。请考虑将下面一个答案标记为正确的。
' Set testing string
Dim s As String = "<PinX F='53mm'></PinX>"

' find first occurence of CHAR ( ' )
Dim a As Integer = s.IndexOf("'")
' find last occurence of CHAR ( ' )
Dim b As Integer = s.LastIndexOf("'")

' get substring "53mm" from string
Dim substring As String = s.Substring(a, b - a)

' get integer values from substring
Dim length As Integer = substring.Length
Dim c As Char = Nothing
Dim result As String = Nothing
For i = 1 To length - 1
    c = substring.Chars(i)
    If IsNumeric(c) Then
        result = result & c
    End If
Next

Console.WriteLine(Int32.Parse(result))
Console.ReadLine()