正则表达式的任意名称:金额"串

时间:2018-06-17 11:10:39

标签: javascript regex

帮助弄清楚如何解析任意Name[:-] amount unit字符串,其中冒号或破折号是可选的分隔符。

基本上,我需要向后查找并找到一对数量和一个度量单位并假设其他所有内容,但冒号或破折号(如果存在)是一个名称。

像这样:

'Item 1lb' - > 'Item', '1', 'lb'

'Item 2: 3kg' - > 'Item 2', '3', 'kg'

'Something else 2 - 6 oz' - > 'Something else 2', '6', 'oz'

'Even more complex-2 90 karat' - > 'Even more complex-2', '90', 'karat'

这个想法是尽可能地解析输入。

2 个答案:

答案 0 :(得分:1)

不是很强大,但要匹配您的测试用例:

https://regex101.com/r/zhuaYV/1

^(.*?)[:-\s]+(\d+)\s*(\w*)$

答案 1 :(得分:0)

像这样的正则表达式可能有效

(.*): ([0-9]*)(.*)

这应该为每个术语返回3组。您可能必须根据输入的混乱程度来处理表达式。