2015-12-07 58 views
-7

我有一個字符串「Building1Floor2」,它始終以這種格式顯示,我如何清晰地獲取建築物號碼(例如1)和樓層號碼。我想我需要一個正則表達式,但並不完全確定這是最好的方法。如果格式保持不變,我可以使用索引,但是如果我有較高的樓層號碼,例如100它會破裂。如何在兩個單詞之間得到兩個數字(C#)

P.S.我正在使用C#。

+2

的[查找和從字符串中提取的數]可能的複製(http://stackoverflow.com/questions/4734116/find-and-extract-a-number-from-a-string) – cojomojo

回答

4

使用正則表達式是這樣的:

Building(\d+)Floor(\d+) 
+0

這將匹配整個事情,有什麼意義? –

+0

是的,它會將這兩個數字放入捕獲組中,然後您可以使用它們。 –

+0

哦,對不起,我忘了。 –

2

正則表達式將是一個好的選擇這裏,如果「大廈」和「地板」可能會改變。例如: - 「Floor1Room23」

你可以使用"[A-Za-z]+([0-9]{1,})[A-Za-z]+([0-9]{1,})"

有了這些分組,$ 1,現在將是門牌號碼,和$ 2將地板。

如果「大廈」和「地板」從來沒有改變過,然而,然後正則表達式可能是矯枉過正..你可以使用一個字符串分割

0

找到的「F」上的索引和子。

int first = str.IndexOf("F") ; 

String building = str.substring(1, first); 
相關問題