繁体   English   中英

正则表达式以匹配所有一位或两位数字

[英]Regex to match all single or double digit numbers

我需要创建一个正则表达式来匹配所有出现的一位或两位数字(在数字的两边都带有空格)。 我正在尝试使用此正则表达式

\\s\\d{1,2}\\s

我正在此字符串上运行它:

charge to at10d to and you 12 sdf 90 fdsf fsdf32 frere89 32fdsfdsf ball for 1 8 toyota

火柴:

' 12 ', ' 90 ', ' 1 '

但它与1旁边的8不匹配。有人知道我可以如何调整正则表达式,以便将这两个数字都包括在内吗?

您正在尝试匹配所需数字附近的前导和尾随空格。 如果您只是摆脱了其中一个空格(通过使用如下所示的先行符来删除尾随空格),则可以摆脱此问题。

试试这个正则表达式:

\\s\\d{1,2}(?=\\s)

说明:

  • \\s匹配空格
  • \\d{1,2} -匹配1或2位数字
  • (?=\\s) -返回位置(0长度匹配),后跟一个空格。 因此,它实际上与空间不匹配,但要确保当前位置后跟一个空格

点击演示

您可以使用单词boundry \\b表达式。

单词边界将查找未由字母,数字或下划线符号包裹的数字。 它会捕获由空格,字符串的开头和结尾以及非单词字符(#12 @-将得到12)所包裹的1或2位数字。

 var str = "51 charge to at10d to and you 12 sdf 90 fdsf fsdf32 frere89 32fdsfdsf ball for 1 8 toyota 12"; var result = str.match(/\\b\\d{1,2}\\b/g); console.log(result); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM