Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何得到两个单词之间的两个数字(C)_C#_Regex_String - Fatal编程技术网

C# 如何得到两个单词之间的两个数字(C)

C# 如何得到两个单词之间的两个数字(C),c#,regex,string,C#,Regex,String,我有一个字符串Building1Floor2,它总是以这种格式,我如何才能清楚地获得建筑编号,例如1和楼层编号。我想我需要一个正则表达式,但不完全确定这是最好的方法。如果格式保持不变,我可以只使用索引,但如果我有一个高楼层编号,例如100,它将中断 注意,我使用的是C。使用这样的正则表达式: Building(\d+)Floor(\d+) 如果建筑和楼层可能发生变化,正则表达式将是一个不错的选择。e、 g:一楼23室 你可以使用[A-Za-z]+[0-9]{1,}[A-Za-z]+[0-9]{

我有一个字符串Building1Floor2,它总是以这种格式,我如何才能清楚地获得建筑编号,例如1和楼层编号。我想我需要一个正则表达式,但不完全确定这是最好的方法。如果格式保持不变,我可以只使用索引,但如果我有一个高楼层编号,例如100,它将中断

注意,我使用的是C。

使用这样的正则表达式:

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

如果建筑和楼层可能发生变化,正则表达式将是一个不错的选择。e、 g:一楼23室

你可以使用[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);

这将匹配整个东西,有什么意义?是的,它将把两个数字放入捕获组,然后你可以使用。哦,对不起,我忘了。可能是重复的