2017-09-25 103 views
0

我需要一點幫助。 我想分割字符串中的十進制和字符。例如: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的一部分?

我試過在Google搜索後用「\ D +」和「\ d +」和「\ W +」和[a-zA-Z] +等替換模式,但沒有運氣。

有人可以幫忙。我已經搜索了很多輸出或點或數字。如果你想將它們與正則表達式,你可以嘗試以下拆分模式

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) 
+0

你有沒有看過關於RegEx的東西?這將有助於回答你的問題... – muffi

回答

0

您可以使用此方法LINQ。 Regex.Split爲您提供了匹配模式,因此您應該檢查單個正則表達式中的數字模式和文本模式。

Dim pattern As String = "([a-zA-Z]*)([0-9]*[.]?[0-9]+)" 
+0

棒極了!它的工作正常。我有一點疑問。第三和第四是檢查只是數字是十進制的呢? –

+0

@BharathR:「Decimal」是一種接受整數或小數位數的數字的類型。所以這是最靈活的類型 –