在正则表达式中查找数字(Javascript)

在正则表达式中查找数字(Javascript),javascript,regex,Javascript,Regex,这是个奇怪的问题,但请容忍我 因此,我在摆弄正则表达式:我有以下代码,如果inputText变量包含逗号,它可以正常工作,但是如果我将其更改为“99 x冰淇淋,每个99英镑”,它就不工作了。。。(即警报为空) 我想找到结构为quantity,product,£price或quantity x product,£price的句子,当前正则表达式适用于前者 因此,对于99 x冰淇淋,每个$99,这个正则表达式返回99,每个$99 有人能猜一猜为什么这不起作用吗?谢谢。试试: (\d+)(?:, |

这是个奇怪的问题,但请容忍我

因此,我在摆弄正则表达式:我有以下代码,如果inputText变量包含逗号,它可以正常工作,但是如果我将其更改为“99 x冰淇淋,每个99英镑”,它就不工作了。。。(即警报为空)


我想找到结构为
quantity,product,£price
quantity x product,£price
的句子,当前正则表达式适用于前者

因此,对于
99 x冰淇淋,每个$99,这个正则表达式返回
99,每个$99

有人能猜一猜为什么这不起作用吗?谢谢。

试试:

(\d+)(?:, | x )(\w+), £(\d+)

您可以使用实时测试正则表达式。享受

当数字后面没有逗号,但您的正则表达式没有反映这一点时,数字后面应该跟一个空格,因为
[x]?
表示空格或x(可选)。也许你想要
(x)?

我们可以看看你从当前正则表达式中得到了什么结果,以及你想要得到什么吗?我想找到结构为
数量、产品、价格
数量x产品、价格
的句子,当前正则表达式适用于前者。经过编辑,它能更好地解释它。我能问一下,:在本文中是什么意思?the?:是一个不捕获的先行前缀,或者类似于x的(,| x)会捕获。因此,您返回的结构只包含您想要/需要的有用部分。因此,捕获的项目是:[1]数量、[2]产品、[3]价格。为了确保输入文本的结构,我经常使用它。因此,一旦开始解析较长的字符串,最终需要使用特殊字符以某种方式分隔数据,这在某些情况下会有所帮助。看看正则表达式规则,它在我看来像一个非捕获组。对。把它和零宽度正向前瞻混淆了一秒钟。还是有用的。谢谢你,你是对的!我在数字
(\d{1,3}\s?)后面添加了一个空格字符…等等,现在似乎可以了
(\d+)(?:, | x )(\w+), £(\d+)