厚颜无耻的正则表达式帮助:子字符串或匹配字符串的数字部分

Cheeky regex help: substring or match numerical part of string

本文关键字:字符串 数字部 正则表达式 帮助 厚颜无耻      更新时间:2023-09-26
foo = "$22.50 + taxes"

我想要 22.50。

试:

foo.match(/^'$([^' +])/)

我有缺陷的逻辑?"从美元符号开始,然后尽可能多地回到许多不" +"的字符,然后返回它。

如何仅获取数字部分?假设实际数字,22.5 是一个变量,可以是任何东西,但它周围的文本将是一致的。

您可以使用此正则表达式来匹配$和数字:

foo.match(/^'$'d+(?:'.'d+)?'b/)
//=> ["$22.50"]

或者使用前瞻从$匹配到你得到" +"

foo.match(/^'$.*(?= '+)/)
//=> ["$22.50"]

无需在开头锚定正则表达式,或匹配美元符号,或匹配空格和加号。只需抓住数字和句点的顺序:

foo.match(/['d.]+/)
> ["22.50"]