【发布时间】:2018-09-09 14:11:58
【问题描述】:
以下代码用于从 order_details 中获取商品列表
以下代码适用于 1 个项目,但使用以下正则表达式未获取第二个项目/多个项目。
我希望它是动态的,以便它适用于匹配模式中找到的任意数量的项目。
var order_details = "Detalle\n Unidad\n Cantidad\n Total\n Triple Insomnio Especial S/37 1 S/37.90 Insomnio Especial S/21 2 S/23.12 *Tipo de papa:* - Papa Amarilla Tumbay S/0.00\n *Adicional :* - Quesp cheddar S/0.00\n *Agrega Bebida:* - Fanta 400 ml S/0.00\n *Salsas:* - Mayonesa S/0.00\n - Ketchup S/0.00\n - Golf S/0.00\n - Guacamole S/0.00\n - Ají S/0.00\n - Tártara S/0.00\n - Mayo-aji S/0.00\n " ;
var rx = /\s+(.*?)\s+(S\/.*?)\s+(\d+)\s+(S\/.*?)\s+([\s\S]*)/
var m = rx.exec(order_details)
var Detalle = m[1]
var Unidad = m[2]
var Cantidad = m[3]
var Total = m[4]
var Other = m[5]
console.log(Detalle)
console.log(Unidad)
console.log(Cantidad)
console.log(Total)
console.log(Other)
【问题讨论】:
-
你的字符串不正确,每一行都应该换行吧?为什么新行出现在“Insomnio Especial \nS/212”?
-
字符串来自网络,所以我无法控制它,这就是为什么我必须编写一个适用于这种情况的正则表达式,即使我们从 Insomnio Especial \nS/212 上面删除 \n正则表达式不起作用@TilakPutta
-
如果我们删除 \n .. 正则表达式将无法正常工作,但您可以通过 \n 拆分一次,然后通过 \t 将其拆分为行和列
-
你能发布由 web 生成的确切字符串吗
-
我发布的确切字符串@TilakPutta
标签: javascript regex regex-group