2015-12-07 56 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); 
相关问题