我需要使用正则表达式对包含位置信息的字符串进行验证。
示例:
020005254877841100557810AAAAAA841158891BBBB
我需要将比赛位置5到10,并且必须只是数字。
如何使用RegEx执行此操作?
答案 0 :(得分:7)
var myString = "020005254877841100557810AAAAAA841158891BBBB";
var isValid = myString.Substring(4, 5).All(Char.IsDigit);
答案 1 :(得分:5)
如果你绝对需要使用正则表达式,那么它就是......(虽然我认为你应该选择Jonas W的答案)。
Match m = Regex.Match(myString, "^.{4}\d{5}.*");
if(m.Success){
//do stuff
}
正则表达式意味着,“从字符串(^)的开头,匹配任何字符(。{4})的4,然后是五位数,(\ d {5}),然后许多其他字符( 。*)“
答案 2 :(得分:0)
如果你真的觉得你必须使用正则表达式,那就是那个:
"^....\d{5}"
你也可以做这样的多项检查:
"^....(\d{5}|\D{5})
那个将匹配所有数字或所有非数字字符,但不是混合或任何具有空格的东西。
答案 3 :(得分:-1)
以FailedDev提到的为基础。
string myString = "020005254877841100557810AAAAAA841158891BBBB";
myString.Substring(5, 5); //will get the substring at index 5 to 10.
double Num;
bool isNum = double.TryParse(myString, out Num); //returns true of all numbers
希望有所帮助,