使用Java脚本尝试使用正则表达式来捕获字符串中的数据。
我的字符串从左括号开始出现
['ABC']['ABC.5']['ABC.5.1']
我的目标是将正则表达式的每个片段都以块或数组的形式获取。 我查看了一下,发现匹配功能可能是一个不错的选择。
var myString = "['ABC']['ABC.5']['ABC.5.1']";
myString.match(/\[/g]);
我看到的输出只是每个元素的[。
我希望数组像这样
myString[0] = ['ABC']
myString[1] = ['ABC.5']
myString[2] = ['ABC.5.1']
要获得上述期望的输出,正确的正则表达式和/或函数是什么?
答案 0 :(得分:0)
您可以将此正则表达式与split一起使用:
\[[^\]]+
\[
-匹配[
[^\]]+
-一次或多次匹配]
以外的任何内容\]
-匹配]
let str = `['ABC']['ABC.5']['ABC.5.1']`
let op = str.split(/(\[[^\]]+\])/).filter(Boolean)
console.log(op)
答案 1 :(得分:-1)
如果只想将它们分开,则可以使用一个简单的表达式,或者可以使用一个更好的表达式来将它们分开:
\[\'(.+?)'\]
const regex = /\[\'(.+?)'\]/gm;
const str = `['ABC']['ABC.5']['ABC.5.1']`;
const subst = `['$1']\n`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);