我到达以下正则表达式:
[-]?\b(?:-[1-9]|-3276[0-8]|-?[1-9][0-9]{1,3}|-?[12][0-9]{4}|-?3[01][0-9]{3}|-?32[0-6][0-9]{2}|-?327[0-5][0-9]|[0-9]|3276[0-7])\b
但是,我正在捕获-0
。我该如何解决?
您的问题是开始时的\b
与减号不匹配。如果将其替换为自定义边界,它将起作用:
(?:^|[^0-9-])(?:-[1-9]|-3276[0-8]|-?[1-9][0-9]{1,3}|-?[12][0-9]{4}|-?3[01][0-9]{3}|-?32[0-6][0-9]{2}|-?327[0-5][0-9]|[0-9]|3276[0-7])\b