我希望找到15或16位不以某些数字开头的数字。所以我有:
[0-9]{15,16}
这可以得到我的15和16位数字,但如果他们以596542或751302开头,我不想要这些数字。所以我试过了:
^(?!596542|751302)[0-9]{15,16}
但那并没有奏效。任何帮助将不胜感激。
编辑:如果(?!596542 | 751302)不在表达式的开头,我想找到数字 - 不是行的开头。此外,它可能是一个较长的数字串。
答案 0 :(得分:1)
由于您希望匹配至少包含不包含 596542
和751302
的数字的数字
@"\b(?![0-9]*(?:596542|751302))[0-9]{15,}"
请参阅regex demo
如果您需要将无法启动的至少15位数字与2个值匹配,请使用
@"\b(?!596542|751302)[0-9]{15,}"
请参阅this regex demo。
var results = Regex.Matches(s, @"\b(?![0-9]*(?:596542|751302))[0-9]{15,}")
.Cast<Match>()
.Select(m => m.Value)
.ToList();
要匹配整数,请在模式的末尾添加\b
。