繁体   English   中英

用正则表达式匹配一组特定的字符串

[英]Match a Particular set of string with regex

我正在尝试将一组特定的字符串与正则表达式匹配

1- #1 –.75 加仑 $16.99

2- #2 –1.6 加仑 $36.99

这是我试图通过多次尝试来解决的问题,但它似乎仍然不起作用

 console.log(/^#\d\s+–\s+[0-9]*\.[0-9]+\s+[a-zA-Z]+\s+:[0-9]*\.[0-9]+$/.test('#2 – 1.6 Gallon $36.99')) console.log(/^#\d\s+–\s+[0-9]*\.[0-9]+\s+[a-zA-Z]+\s+:[0-9]*\.[0-9]+$/.test('#1 –.75 Gallon $16.99'))

我已经单独完成了每个部分,但我不知道我在哪里犯了错误,任何帮助将不胜感激。 谢谢

您应该在连字符周围允许任何(甚至为零)数量的空格,并且您需要匹配美元符号而不是冒号:

^#\d\s*–\s*\d*\.?\d+\s+[a-zA-Z]+\s+\$\d*\.?\d+$

请参阅正则表达式演示

我还加了一个? \. 匹配整数。

详情

  • ^ - 字符串的开头
  • # - 一个#字符
  • \d - 一个数字
  • \s*–\s* - 用零个或多个空格包裹的连字符
  • \d*\.?\d+ - 一个 integer 或类似浮点数的值:零个或多个数字,可选. 然后是一位或多位数字
  • \s+ - 一个或多个空格
  • [a-zA-Z]+ - 一个或多个字母
  • \s+ - 一个或多个空格
  • \$ - $字符
  • \d*\.?\d+ - 一个 integer 或浮点值
  • $ - 字符串结束。

暂无
暂无

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

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