Javascript 给出错误结果的正则表达式
使用Javascript试图使用正则表达式捕获字符串中的数据 我的字符串显示为从左括号开始的Javascript 给出错误结果的正则表达式,javascript,regex,Javascript,Regex,使用Javascript试图使用正则表达式捕获字符串中的数据 我的字符串显示为从左括号开始的 ['ABC']['ABC.5']['ABC.5.1'] 我的目标是将正则表达式的每一部分作为块或数组。 我已经检查过了,发现match函数可能是一个不错的选择 var myString = "['ABC']['ABC.5']['ABC.5.1']"; myString.match(/\[/g]); 我看到的输出只是每个元素的[1] 例如,我希望数组是这样的 myString[0] = ['ABC']
['ABC']['ABC.5']['ABC.5.1']
我的目标是将正则表达式的每一部分作为块或数组。
我已经检查过了,发现match函数可能是一个不错的选择
var myString = "['ABC']['ABC.5']['ABC.5.1']";
myString.match(/\[/g]);
我看到的输出只是每个元素的[1]
例如,我希望数组是这样的
myString[0] = ['ABC']
myString[1] = ['ABC.5']
myString[2] = ['ABC.5.1']
获得上述所需输出的正确正则表达式和/或函数是什么?您可以将此正则表达式与split一起使用:
\[[^\]]+
细节
-匹配\[
[
-一次或多次匹配除[^\]+
之外的任何内容]
-匹配\]
]
let str=`['ABC']['ABC.5']['ABC.5.1']`
让op=str.split(/(\[^\]]+\]/).filter(布尔值)
console.log(op)
如果您只想将它们分开,可以使用简单的表达式或更好的表达式来拆分它们:
\[\'(.+?)'\]
const regex=/\[\'(.+?)'\]/gm;
常量str=`['ABC']['ABC.5']['ABC.5.1']`;
常量subst=`['$1']\n`;
//被替换的值将包含在结果变量中
const result=str.replace(regex,subst);
log('替换结果:',结果)代码>您的问题与类似,只需将括号替换为(转义的)方括号。另请参阅,我认为它是重复的。为什么希望每个结果字符串都包含在自己的数组中?是否希望每个字符串都包含在单独的数组中?请尝试myString.split(/[\]\[']+/).filter(布尔)代码>