我正在尝试从纯文本中检测 7 位数字,这是我正在使用的正则表达式。
Regex sevenDigit = new Regex(@"(?<!\d)\d{7}(?!\d)");
现在,我希望能够只匹配那些不以特定前缀开头的 7 位数字。特别是“usr_id”。如何修改此正则表达式以仅匹配不属于 usr_id=1234567 形式的那些?
谢谢!
我会这样做:
Regex sevenDigit = new Regex(@"(?<!usr_id=)\b\d{7}\b");
还要注意\b
单词边界,这是一种更优雅的表达“数字开头”和“数字结尾”的方式。 它们与您的和环视断言完全不匹配(最值得注意的是,它们不允许匹配您的正则表达式允许匹配的范围)。所以如果你真的需要这种方法,你也可以这样做(?<!\d)
(?!\d)
1234567
abc1234567xyz
Regex sevenDigit = new Regex(@"(?<!\d|usr_id=)\d{7}(?!\d)");