[英]Regex: extract before, after character
给定以下字符串
stringData= "goal01=4 goal02=2 goal06=3 goal09=1 goal12=5 goal13=2 goal14=4 planet=52 people=48 Inclusion=4 HealthWellness=2 SustainableInfrastructure=4 ResponsibleConsumption=9 Environment=2"
我需要一个正则表达式来解析以下两个变体
stringColumns = stringData(regex that //fetch before '=' and add ',' to string i.e goal01,goal02,planet etc..)
stringValues= stringData(regex that //fetch after '=' and same as above 4,2,3,52, etc..)
因为我需要将它们拆分以构建 sql 插入语句,例如
sqlSyntax = "INSERT INTO [table] ("'+stringColumns+'") VALUES ("'+stringValues+'")"
我试过^([^=])+
并且它只匹配第一个目标goal01
我需要什么来获取所有剩余部分?
您不需要正则表达式。 简单地用空格分割然后用等号并拉出必要的字符:
var stringData = "goal01=4 goal02=2 goal06=3 goal09=1 goal12=5 goal13=2 goal14=4 planet=52 people=48 Inclusion=4 HealthWellness=2 SustainableInfrastructure=4 ResponsibleConsumption=9 Environment=2"; var dataArray = stringData.split(" ") var stringColumns = dataArray.map(item => item.split("=")[0]).join(","); var stringValues = dataArray.map(item => item.split("=")[1]).join(","); console.log(stringColumns); console.log(stringValues);
这是 ES5 等效项,以防您无法使用 ES6 箭头函数:
var stringData = "goal01=4 goal02=2 goal06=3 goal09=1 goal12=5 goal13=2 goal14=4 planet=52 people=48 Inclusion=4 HealthWellness=2 SustainableInfrastructure=4 ResponsibleConsumption=9 Environment=2"; var dataArray = stringData.split(" ") var stringColumns = dataArray.map(function(item) { return item.split("=")[0]; }).join(","); var stringValues = dataArray.map(function(item) { return item.split("=")[1]; }).join(",");; console.log(stringColumns); console.log(stringValues);
但是,如果您明确想使用正则表达式来执行此操作,则可以执行以下操作:
var stringData = "goal01=4 goal02=2 goal06=3 goal09=1 goal12=5 goal13=2 goal14=4 planet=52 people=48 Inclusion=4 HealthWellness=2 SustainableInfrastructure=4 ResponsibleConsumption=9 Environment=2"; var stringColumns = stringData.match(/[A-Za-z0-9]+(?==)/g).join(","); var stringValues = stringData.match(/(?<==)[0-9]+/g).join(","); console.log(stringColumns); console.log(stringValues);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.