我不确定这是可行的但是......我正在尝试搜索一个数字字符串。我有一个工作模式可以做到这一点,但如果文件中出现某些单词以及我不希望检测到的数字。
例如,我在所有文档中搜索一个9位数字,但如果文档包含单词test,testing,false ...等,我不希望捕获9位数字。
具体来说,我正在搜索SSN,但如果包含excel电子表格在文档中包含某些关键字,我不希望SSN被捕获。
答案 0 :(得分:0)
绝对有可能。如何做到完全取决于正则表达式引擎,所以你需要添加这些信息,以防以下解决方案不适合你:
(?s)\A(?!.*\b(?:test|testing|false)\b).*(\b\d{9}\b)
比赛结束后,九位数字将在反向引用号码中。 1。
<强>解释强>
(?s) # Dot-matches-all mode (use (?m) in Ruby!)
\A # Start of string
(?! # Assert that it's impossible to match...
.* # any string, followed by
\b # a word boundary (start of word),
(?:test|testing|false) # one of these keywords (don't capture it),
\b # a word boundary (end of word).
)
.* # Match any string until...
(\b\d{9}\b) # an entire nine-digit number.