【发布时间】:2016-09-08 16:59:51
【问题描述】:
有人可以帮我处理正则表达式吗? 我想删除饮料文章标题中所有不必要的信息,如大小、数量等。
我做了这个正则表达式:/(?<!^)(\d{1,2}\s?x\s?)?\d{1,2}((,|\.)\d{1,2})?\s?L?/igU
在25 Test Drink 60% 12x1,0L 上,它与5 和25 匹配。
在Test Drink 60% 12x1,0L 上,它匹配60 之前的%。
我怎样才能避免这些例子?我只想匹配12x1,0L。我不得不放了这么多可选字符,因为数据源在数量和大小的格式上非常不一致。也可能会出现数量缺失的情况,因为它只是一个瓶子/罐头。
我在下面和此处提供了更多示例标题:https://regex101.com/r/aQ2kO8/2
25 测试饮料 60% 12x1,0L
试饮 60% 2x0,5
试饮 3 x 0,75 L
测试饮料 4x0,75 L
测试饮料 5 x 0,75L
试饮 66 x 0,75
试饮 0,75
试饮 0.75
7UP 12 x 1 升
有人可以帮我解决这个问题吗?
【问题讨论】:
-
你能试试
(?:\d+\s*x\s*)?(?:\d+[.,])?\d+\s*L?\s*$吗?不确定我是否正确满足了您的所有要求。 -
您正在寻找的模式是否应该始终以
L结尾? -
@SebastianProske 感谢您的建议,但它仅与我链接中的最后一个示例匹配。我添加了
?,因为这些字符只是可选的,可能不会出现在标题中。请查看我提供更多标题示例的链接 -
如果要测试多行,请在 regex101 中使用 \m 修饰符。 regex101.com/r/iN2vD5/1
-
@MichaelWalter: regex101.com/r/pY1pP0/1