正则表达式起始位置

时间:2012-11-07 20:52:20

标签: c# regex

我需要使用正则表达式对包含位置信息的字符串进行验证。

示例:

020005254877841100557810AAAAAA841158891BBBB

我需要将比赛位置5到10,并且必须只是数字。

如何使用RegEx执行此操作?

4 个答案:

答案 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

希望有所帮助,