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

我达到以下正则表达式:

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

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

您的问题是开始时\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

本文链接:https://www.f2er.com/3157052.html

大家都在问