JS中搜索词的正则表达式搜索数字或数字和空格到搜索词的长度。在这种情况下,如果有空格,则为 3-5 个字符

regex search digit or digit and space to length of search term in js. In this case, 3-5 characters, if there are spaces

提问人:Sebők Attila 提问时间:11/7/2023 最后编辑:The fourth birdSebők Attila 更新时间:11/7/2023 访问量:56

问:

我从下面的列表中找到值“ddd”、“dsdd”、“ddsd”:“150 欧元 150 00 欧元 150 150 欧元 1 50 0 欧元”。

我试过了:

/(\d{3})|(\d+\s\d{1,2})/gm

测试结果:(粗体值不应匹配)

  • 150
  • 15 00
  • 150
  • 150
  • 1 50
JavaScript 正则表达式 货币

评论

0赞 Wiktor Stribiżew 11/7/2023
即或\d+(?: \d+)?\d+(?:\s\d+)?
0赞 The fourth bird 11/7/2023
\b\d\s?\d\s?\d regex101.com/r/gTmpvn/1regex101.com/r/D4hmDJ/1\b\d(?:\s?\d|\d\s)\d
0赞 The fourth bird 11/7/2023
你已经更新了这个问题几次,这个模式有效吗?
0赞 Sebők Attila 11/7/2023
嗨,是的,谢谢!我怎样才能将你的答案标记为正确答案?这是我第一次用它来回答一个附带问题。

答:

1赞 The fourth bird 11/7/2023 #1

交替的第二部分仅匹配单个 whitspace 字符一次,并匹配 1 个或多个数字,并匹配 1 个或 2 个数字。\d+\s\d{1,2}\d+\d{1,2}

要匹配 3 位数字,第一位和第二位或第二位和第三位数字之间有一个空格字符,或者仅匹配 3 位数字:

\b\d(?:\s?\d|\d\s)\d

该模式匹配:

  • \b防止部分单词匹配的单词边界
  • \d匹配数字
  • (?:备选方案的非捕获组
    • \s?\d匹配可选的 WhitSpace 字符,后跟数字
    • |
    • \d\s匹配一个数字,后跟一个 whitspace 字符
  • )关闭群组
  • \d匹配数字

观看正则表达式演示