gpt4 book ai didi

c# - 正则表达式不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:39 25 4
gpt4 key购买 nike

如何编写 RegEx 表达式来匹配以 090 或 091 或 0123 或 0168 或 0199 或 0124 开头且长度介于 10 到 11 位之间的数字?

我试过这个但不是真的

@"^(090|091|0123|0168|0199|0124)\d{7,8}$"

最佳答案

正则表达式本身看起来基本没问题,当然它也允许 12 位数字(四位开头,后面跟着 8 位数字)。为了改变这一点,我建议这样做:

foundMatch = Regex.IsMatch(subjectString, 
@"^ # Start of string
(?=.{10,11}$) # Assert 10-11 character length
0 # Start with matching a 0
(?:90|91|123|168|199|124) # then one of the alternatives
[0-9]* # then fill the rest with digits.
$ # End of string",
RegexOptions.IgnorePatternWhitespace);

如果您想在较长的字符串中查找这样的数字,而不是验证一个字符串,那么请使用

resultString = Regex.Match(subjectString, 
@"\b # Start of number
(?=[0-9]{10,11}\b) # Assert 10-11 character length
0 # Match 0
(?:90|91|123|168|199|124) # then one of the alternatives
[0-9]* # then fill the rest with digits
\b # End of number",
RegexOptions.IgnorePatternWhitespace).Value;

(假设数字被非字母数字字符包围)。

关于c# - 正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com