Javascript 用于解析的正则表达式工作不正常
我有一根这样的绳子Javascript 用于解析的正则表达式工作不正常,javascript,Javascript,我有一根这样的绳子 str = "[numA1-E1]+[SalineLotNumberQ2-P1]-[numericP1-A1]" 正则表达式给出 arr[0] = numA1E1 arr[1] = SalineLotNumberQ2P1 arr[2] = numericP1A1 而我想要 arr[0] = numA1-E1 arr[1] = SalineLotNumberQ2-P1 arr[2] = numericP1-A1 如果我从正则表达式中删除减号,它将给出arr[2]=-
str = "[numA1-E1]+[SalineLotNumberQ2-P1]-[numericP1-A1]"
正则表达式给出
arr[0] = numA1E1
arr[1] = SalineLotNumberQ2P1
arr[2] = numericP1A1
而我想要
arr[0] = numA1-E1
arr[1] = SalineLotNumberQ2-P1
arr[2] = numericP1-A1
如果我从正则表达式中删除减号,它将给出arr[2]=-numericP1-A1
如果你能帮忙的话
目前我的正则表达式是
str.replace(/[+-/*//[ ]/g,'').split("]").slice(0, -1);
不要用空字符串替换-:
str.replace(/[+/*//[ ]/g,'').split("]").slice(0, -1);
const str=“[numA1-E1]+[SalineLotNumberQ2-P1]”;
const result=str.replace(/[+/*/[]/g',).split(“]”).slice(0,-1);/*在replace方法的正则表达式中不包含“-”,所以它将保留在结果中*/
console.log(结果[0])代码>只需从正则表达式中删除
var str = "[numA1-E1]+[SalineLotNumberQ2-P1]";
var abc =str.replace(/[+/*//[ ]/g,'').split("]").slice(0, -1);
console.log(abc);
m应该是['numA1-E1','SalineLotNumberQ2-P1','numericP1-A1']
编辑:这是python,js正则表达式的工作原理与之类似使用正则表达式是可能的。首先,您需要使用]拆分它并删除+。然后,您必须映射数组以从字符串的开头移除符号-
代码如下:
var str = "[numA1-E1]+[SalineLotNumberQ2-P1]-[x-y]";
var arr =str.replace(/[+/*//[ ]/g,'').split("]").slice(0, -1);
arr = arr.map(function(item){
return item.replace(/^-/, '')
});
console.log(arr);
试试这个
str=“[numA1-E1]+[SalineLotNumberQ2-P1]-[numericP1-A1]”;
array=str.match(/\[^\]*\]/g)//在这里,它将生成字符串数组(即sur被[and]四舍五入)
array=array.map(x=>x.replace(/\[\]/g',)//此处将[和]替换为“”
console.log(数组)代码>查看此项。
首先,正则表达式删除]…[&添加|作为分隔符,然后]然后[。完成此操作后,按|
str=“[numA1-E1]+[SalineLotNumberQ2-P1]-[numericP1-A1]”;
arr=str.replace(/(\].\[)/g,“|”).replace(/[\]]/,”).replace(/[\]/,”).split(“|”)
console.log(arr)
一个更简单的解决方案,匹配[]
之间的所有字符并删除括号
const str=“[numA1-E1]+[SalineLotNumberQ2-P1]-[numericP1-A1]”;
const result=str.match(/\[([^\]+)\]/g).map(item=>item.substr(1,item.length-2))
控制台日志(结果)代码>荣幸!!继续问!!真棒的家伙!!如果我有str=“[App Version]+4+[Number 1 Q1-P3]”。。。。我想要arr[0]=应用程序版本arr[1]=编号1 Q1-P3请回复@ivp
var str = "[numA1-E1]+[SalineLotNumberQ2-P1]-[x-y]";
var arr =str.replace(/[+/*//[ ]/g,'').split("]").slice(0, -1);
arr = arr.map(function(item){
return item.replace(/^-/, '')
});
console.log(arr);