我有一个正则表达式:
12345678|[0]{8}|[1]{8}|[2]{8}|[3]{8}|[4]{8}|[5]{8}|[6]{8}|[7]{8}|[8]{8}|[9]{8}
如果字符串包含 12345679 或 11111111 或 22222222 ... 或 ... 999999999,则匹配。
如果不是上述情况,我如何才能将其更改为仅匹配? (不幸的是,我不能在 C# 中使用 !IsMatch)...编辑,因为这对我来说是黑盒代码,我正在尝试在现有配置文件中设置正则表达式
最佳答案
这将匹配所有...
foundMatch = Regex.IsMatch(SubjectString, @"^(?:(?!123456789|(\d)\1{7}).)*$");
除非在字符串中找到“禁止”序列之一。
如您所见,不使用 !isMatch
。
编辑:
添加第二个约束可以通过先行断言来完成:
foundMatch = Regex.IsMatch(SubjectString, @"^(?=\d{9,12})(?:(?!123456789|(\d)\1{7}).)*$");
关于c# - .NET 正则表达式 - "Not"匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8327478/