我想检查字符串是否包含11个字符,不多或少,如果它以数字' 09'开头,那么我的模式是:
Regex rg = new Regex(@"^(?=09)(?={11})");
Console.WriteLine(rg.IsMatch("09123456789"));
^(?=09)
工作正常,但当我添加第二部分(?={11})
时,会抛出异常。什么是正确的模式?
答案 0 :(得分:2)
如果没有正则表达式,您可以实现这一目标:
if (s.Length == 11 && s.StartsWith("09") && s.All(Char.IsDigit))
请参阅C# demo(不确定您是否只需要数字。如果没有,请删除s.All(Char.IsDigit)
)。
请注意,^(?=09)(?={11})
匹配字符串位置的开头(使用^
),然后检查字符串是否以09
子字符串开头,然后需要{11}
字符串开头的文字字符序列。自09
!= {1
。
如果您需要正则表达式,可以使用
\A09[0-9]{9}\z
或者,不仅要匹配数字:
\A09.{9}\z
,其中
\A
- 断言字符串的开头09
- 匹配文字字符序列09
.{9}
- 匹配除LF之外的9个字符\z
- 字符串的非常结尾。答案 1 :(得分:1)
new Regex(@"^09[0-9]{9}$");
有效字符串的模式
答案 2 :(得分:0)
您可以使用
background-size: 280% auto;
但我建议更简单,没有正则表达式
Regex rg = new Regex(@"^09.{9}$", RegexOptions.Compiled);
bool CheckStringRegex(string str)
{
return rg.IsMatch(str);
}
答案 3 :(得分:0)
^(?=09)\w{11}$
怎么样?
DEMO click me