我有两个正则表达式来验证输入的值.
一个允许任何长度的Alpha-Numeric值:
@"^\s*(?<ALPHA>[A-Z0-9]+)\s*"
Run Code Online (Sandbox Code Playgroud)
而另一个只允许数值:
@"^\s*(?<NUM>[0-9]{10})"
Run Code Online (Sandbox Code Playgroud)
如何获得长度为11的数字字符串,不被NUM
正则表达式所捕获.
Tim*_*uri 16
我想你想说的是你不想允许超过10位数.所以,只需$
在末尾添加一个指定正则表达式的结尾.
例: @"^\s*(?[0-9]{10})$"
这是我原来的答案,但我想我读得太准确了.
string myRegexString = `@"(?!(^\d{11}$)` ... your regex here ... )";
Run Code Online (Sandbox Code Playgroud)
这写着"虽然前方不是,但是开始,11位数,结束"
如果它是单行,您可以指定您的匹配必须发生在行尾,就像在 .net 中这样......
^\s*([0-9]{10})\z
Run Code Online (Sandbox Code Playgroud)
这将接受 1234567890 但拒绝 12345678901。