[英]Regex to match contents of a string preceded by particular string and ended with a particular string
[英]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.