我需要一些帮助。 我想在字符串中拆分十进制和字符。 例如:0.5Lg ---> 0.5分开和Lg分开。 0.22Ldd ---> 0.22分开和Ldd分开
我尝试了以下内容:
Dim input As String = "0.22Ldd"
Dim pattern As String = "[^0-9\.]+"
Dim substrings() As String = Regex.Split(input, pattern)
TextBox11.Text = substrings(0)
这给出了0.22的输出但是如何提取Ldd部分?
我尝试用谷歌搜索后用“\ D +”和“\ d +”以及“\ W +”和[a-zA-Z] +等替换模式,但没有运气。
有人可以提供帮助吗?我已经google了很多,无论输出是带点还是带数字。
答案 0 :(得分:0)
您可以使用此LINQ方法:
Dim input As String = "0.22Ldd"
Dim numericPart = input.TakeWhile(Function(c) Char.IsPunctuation(c) orelse Char.IsDigit(c)).ToArray()
Dim number as Decimal
Dim validNumber = Decimal.TryParse(new String(numericPart), NumberStyles.Any, NumberFormatInfo.InvariantInfo, number)
Dim letterPart As String = input.Substring(numericPart.Length)
答案 1 :(得分:0)
如果你想用正则表达式拆分它们,你可以尝试下面的模式。 Regex.Split为您提供了匹配的模式,因此您应该检查单个正则表达式中的数字模式和文本模式。
Dim pattern As String = "([a-zA-Z]*)([0-9]*[.]?[0-9]+)"