我有一个字符串“Building1Floor2”,它始终以这种格式显示,我如何清晰地获取建筑物号码(例如1)和楼层号码。我想我需要一个正则表达式,但并不完全确定这是最好的方法。如果格式保持不变,我可以使用索引,但是如果我有较高的楼层号码,例如100它会破裂。如何在两个单词之间得到两个数字(C#)
P.S.我正在使用C#。
我有一个字符串“Building1Floor2”,它始终以这种格式显示,我如何清晰地获取建筑物号码(例如1)和楼层号码。我想我需要一个正则表达式,但并不完全确定这是最好的方法。如果格式保持不变,我可以使用索引,但是如果我有较高的楼层号码,例如100它会破裂。如何在两个单词之间得到两个数字(C#)
P.S.我正在使用C#。
使用正则表达式是这样的:
Building(\d+)Floor(\d+)
这将匹配整个事情,有什么意义? –
是的,它会将这两个数字放入捕获组中,然后您可以使用它们。 –
哦,对不起,我忘了。 –
正则表达式将是一个好的选择这里,如果“大厦”和“地板”可能会改变。例如: - “Floor1Room23”
你可以使用"[A-Za-z]+([0-9]{1,})[A-Za-z]+([0-9]{1,})"
有了这些分组,$ 1,现在将是门牌号码,和$ 2将地板。
如果“大厦”和“地板”从来没有改变过,然而,然后正则表达式可能是矫枉过正..你可以使用一个字符串分割
找到的“F”上的索引和子。
int first = str.IndexOf("F") ;
String building = str.substring(1, first);
的[查找和从字符串中提取的数]可能的复制(http://stackoverflow.com/questions/4734116/find-and-extract-a-number-from-a-string) – cojomojo