我需要一个c#的正则表达式,它可以匹配以下模式
abc1abcd
1abcdefg
的 abcdefg1
基本上我的表达式应该至少有一个数字,最小尺寸是8个字符,包括数字。 如果可能,还要解释正则表达式。
答案 0 :(得分:3)
我可能会检查两个陈述。只需检查长度,例如
string.Length > 7
然后确保此正则表达式可以找到匹配...
[0-9]
答案 1 :(得分:3)
您可以使用look-ahead assertion来验证长度,然后向前搜索数字,这样:
(?=.{8}).*[0-9]
我们预测8个字符,如果成功,那么我们实际上会尝试匹配“任何内容,后跟数字”。
但实际上,不要这样做。只需明确检查长度即可。它更加清晰。
答案 2 :(得分:2)
您的正则表达式模式应该是:\d+
(匹配1个或更多数字)。对于您的示例,最好不要使用正则表达式确定最小长度,因为您关心的是它至少有一个数字且至少为8个字符
Regex regEx = new Regex(@"\d+");
isValid = regEx.Match(myString).Success && myString.Length >= 8;
模式\d
与[0-9]
相同,+
符号表示at least one of
。字符串前面的@
符号是为了试图逃避\d
。
正如El Ronnoco在评论中所提到的,只有\d
符合您的要求。了解\d+
对于更复杂的模式非常有用,你需要在某些字符串之间插入一些数字等。
还:我刚读过一些我不知道的东西。 \d
匹配Unicode number, decimal digit类别中的任何字符,而不仅仅是[0-9]
。如果您只想要任何数字,请注意一些事项。否则El Ronnoco对你的模式[0-9]
的回答就足够了。