Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 给出错误结果的正则表达式_Javascript_Regex - Fatal编程技术网

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']

使用Javascript试图使用正则表达式捕获字符串中的数据

我的字符串显示为从左括号开始的

['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(布尔)