我想要一个正则表达式来描述从-32768到32767的整数

问题描述 投票:1回答:1

我到达以下正则表达式:

[-]?\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。我该如何解决?

regex
1个回答
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

查看example on regex101.com

© www.soinside.com 2019 - 2024. All rights reserved.