我正在尝试从纯文本中检测7位数字,这是我正在使用的正则表达式。
Regex sevenDigit = new Regex(@"(?<!\d)\d{7}(?!\d)");
现在,我希望能够仅匹配那些不以特定前缀开头的7位数字。特别是“usr_id”。 如何修改此正则表达式以仅匹配那些不是usr_id = 1234567形式的正则表达式?
谢谢!
答案 0 :(得分:3)
我会这样做:
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)");