我正在尝试匹配长度在9到12位之间且不在43200之前的数字 - 。
(?<!43200-)([0-9]{9,12})
因此,当匹配43200-990003543654时,结果是90003543654,因为这之前是43200-9,所以这是一个匹配。
这不是我想要的,这不应该匹配。
但我似乎无法弄清楚如何解决这个问题。
非常感谢任何帮助
谢谢, 格伦
答案 0 :(得分:1)
对于初学者,你需要在开始时使用单词边界来防止误报,例如111143200-...
。
你最后还需要字边界,以防止较长数字的前12位数字匹配。
但你主要需要看一下5位数字和短划线
(?<!\b43200-)(?<=\b\d{5}-)\d{9,12}\b
或者,如果不需要前缀,则不以数字
开头(?<!\b43200-)(?<!\d)\d{9,12}\b