2012-04-18 69 views
0

我需要重新组织一个陈旧的cvs数据库,以便它可以使用正确的特殊字段名称导入电子商务软件。Coffeescript多行正则表达式替换混淆

这是我正在匹配的一些代码。 [ID,类别,生产厂家,型号]

"1","3","Samsung","Galaxy S III" 
"2","3","HTC","One X" 

我的正则表达式

".*?".*?".*?".*?(".*?") 

基本上,我需要一个稍微更复杂的对象字面像

{manufacturers: 'Samsung'} 

只更换制造商,但我似乎无法弄清楚如何有选择地取代第三场比赛。 我知道我可以分割字符串,并提取我需要的数据,但我不知道如何更换匹配,使输出变量的样子:

"1","3",{manufacturers: 'Samsung'},"Galaxy S III" 
"2","3",{manufacturers: 'HTC'},"One X" 

感谢您帮助我!

+0

你试过什么代码来取代匹配? – 2012-04-18 11:58:55

回答

2

匹配此:

"(.*?)","(.*?)","(.*?)","(.*?)" 

通过此替换:

"$1","$2",{manufacturers: '$3'},"$4" 

实施例:

var s='"1","3","Samsung","Galaxy S III"'; 
var p='"(.*?)","(.*?)","(.*?)","(.*?)"'; 
var r='"$1","$2",{manufacturers: \'$3\'},"$4"'; 
console.log(s.replace(new RegExp(p,"g"),r)); 

输出:

"1","3",{manufacturers: 'Samsung'},"Galaxy S III" 
+0

我感激不尽。谢谢。 – youanden 2012-04-18 22:26:31