我有一个字符串"<PinX F='53mm'></PinX>"
,我想访问字符串中的53并对它做一些补充,然后将答案添加回该字符串。我一直在考虑这个问题,并且不确定这是否可以用正则表达式完成?任何人都可以帮助我。
感谢
答案 0 :(得分:1)
是的,您可以使用正则表达式。这将获取数字,将它们解析为数字,向其中添加一个数字,然后将其放回字符串中(也就是说,结果实际上是一个新字符串,因为字符串是不可变的)。
string s = Regex.Replace(
input,
@"(\d+)",
m => (Int32.Parse(m.Groups[1].Value) + 1).ToString()
);
答案 1 :(得分:0)
答案 2 :(得分:0)
正则表达式看起来非常适合这个特定问题:
\d+
将匹配一个或多个数字。
Int32.Parse(Regex.Match("<PinX F='53mm'></PinX>", @"\d+").Value)
将返回53.
答案 3 :(得分:0)
在这个案例中是的。 "'(.*?)'
然后访问第一个组,但如果这是更大的xml的一部分,则不应使用正则表达式。您应该使用xml解析器构建到.net中,使用xsd查找属性并获取值。
答案 4 :(得分:0)
或者,这是一个小例程...
' 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()