如何从字符串中拆分小数和字符

时间:2017-09-25 12:10:35

标签: vb.net

我需要一些帮助。 我想在字符串中拆分十进制和字符。 例如: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了很多,无论输出是带点还是带数字。

2 个答案:

答案 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]+)"