How to match string starting with one of the two specified chars followed by two or more digits

时间:2016-06-04 16:59:36

标签: c# regex

  • Matches : X23, A4858, A09387373, X90
  • Non-matches : G23, X23H, A48B59, A48BA484646

I came up with the following,

var rex = new Regex(@"^([AX](\d\d)+)");

but this matches X23H, A48B59,A48BA484646

How do I make sure it's a string starting with either 'A' or 'X' and then followed by two or more digits?

3 个答案:

答案 0 :(得分:2)

使用n可以完成某种模式的至少{n,}。您可能还想标记字符串的结尾。尝试做:

var rex = new Regex(@"^([AX]\d{2,})$");

答案 1 :(得分:0)

您错过了end of line anchor$):

var rex = new Regex(@"^([AX](\d\d)+)$");

这就是为什么你的表达式在开始时正确匹配,但是#34;抓取太多"最后。

答案 2 :(得分:0)

这应该可以正常工作...... 它采取的是' A'或者' X'作为第一个字符,后跟2个数字。

var rex = new Regex(@"^[AX]{1}\d{2}$");

您可以使用^和$来最好地满足您的要求以及regexOptions。