任何人都可以帮我处理RegEx吗? 我想删除饮料的artivle标题中的所有必要信息,如尺寸,数量等。
我制作了这个RegEx:/(?<!^)(\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 L
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
您可以使用(?:\d+\s*x\s*)?(?:\d+[.,])?\d+\s*L?\s*$
作为搜索模式,如果您将其应用于多行文本,则必须设置m和g修饰符。如果您不关心l
和x
(?:\d+\s*x\s*)?
可选地匹配数字,后跟可能被空格包围的x
(?:\d+[.,])?
可选地匹配数字后跟点或逗号\d+
匹配一个或多个数字\s*L?\s*
可选地匹配可能被空格包围的L
$
匹配该行的结尾。根据您的描述,您想要匹配的内容始终在最后,通过使用此功能,我们可以避免在饮品名称中匹配数字