我已经搜索了条件前缀的答案,但我是空白的。我预计我错过了一些简单的东西,但我一直没有成功。
我希望将所有这些系列与单个正则表达式行匹配:
以下是逻辑部分:
- (可能是 2 个字母前缀,可能是单词边界)
- (七位数)
- (可能是 2 个字符后缀 [第一个总是字母,第二个字母或数字],可能是单词边界)
匹配示例(字母和数字是任意的):
1234567
1234567B1
1234567A2
1234567AA
AA1234567
AA1234567A1
AA1234567
AA1234567BB
被拒绝:
12345678
/1234567
-1234567
:1234567
01234567
AB12345678AB
我试过的:
我一直试图在那里分组。匹配七个连续数字显然很简单'[0-9]{7}',但我很难匹配可选组中的插入符号 NOT 字符。
例如,如果我执行 '[^\d]?[0-9]{7}' 希望匹配一个可能有前缀的七位数字,但该前缀不能是数字,我没有前缀的匹配失败(即只是一个七位数的字符串)。
显然我是正则表达式的新手,所以任何帮助表示赞赏。
编辑谢谢大家!这些中的每一个似乎都会产生与我的实际测试文件非常接近的结果,我将不得不测试一下,但目前看起来我们有多个正确和有效的答案。