首页 > 解决方案 > 对价格和商品名称进行分组的正则表达式

问题描述

给出以下示例:

100k melon 8

200 knife 7k

1.2m maple logs 19

我需要能够将第一个字符串作为一组,中间部分作为另一组,最后一部分作为最后一组。

我目前的表达式是这样的,但正则表达式真的让我很困惑:

([\d+|k])

你们中的任何一位退伍军人是否知道我下一步应该去哪里或解释我如何才能找到解决方案?

不幸的是,参考 - 这个正则表达式是什么意思?并不能真正解决我的问题,因为它只是您可以使用的所有不同令牌的转储。我遇到麻烦的地方是以有意义的方式将所有这些放在一起。

标签: javascriptregex

解决方案


这是我想出的:

([0-9\.]+[a-z]?)\s([a-z\ ]+)\s([0-9\.]+[a-z]?)

在此处输入图像描述

以及组的快速概览:

([0-9\.]+[a-z]?)

匹配任意数字或点任意次数,外加一个可选的 1 字符单位,如“k”或“m”

([a-z\ ]+)

匹配字母和/或空格。这可能包括一个尾随或前导空格,这很烦人,但我认为这已经足够了。

([0-9\.]+[a-z]?)

和第一组一样。

这三个组分别由一个空格隔开。


推荐阅读