Javascript 正则表达式修饰符 U
Javascript regular expressions modifier U
我有一个字符串
“{1} {2} {4} {abc} {abs}”
和正则表达式
/\{(.+)\}/g
在PHP正则表达式中我可以使用修饰符“U”(U修饰符:不贪婪。默认情况下匹配变得惰性).如果我使用 /\{(.+)\}/gU
,我的回复如下所示:
数组(5)["1","2","4","abc","abs"]
在 javascript 中没有修饰符 U。如果没有这个修饰符,我的回复如下所示:
数组(1)["1 2 4 abc abs"]
我该怎么做?
一种方法是通过添加 ?
修饰符使 +
不贪心:
"{1} {2} {4} {abc} {abs}".match(/\{(.+?)\}/g)
另一种方法是将 .
替换为 "anything except closing brace":
"{1} {2} {4} {abc} {abs}".match(/\{([^}]+)\}/g)
您可以删除所有 {
并分解每个 }
的字符串。是这样的:
var str = "{1} {2} {4} {abc} {abs}";
var result = str.replace(/{|}$/g,"").split(/} ?/);
document.write(result);
尝试 RegExp
/([a-z]+|\d+)(?=\})/ig
匹配 a-z
不区分大小写或数字字符后跟 }
"{1} {2} {4} {abc} {abs}".match(/([a-z]+|\d+)(?=\})/ig)
console.log("{1} {2} {4} {abc} {abs}".match(/([a-z]+|\d+)(?=\})/ig))
我有一个字符串
“{1} {2} {4} {abc} {abs}”
和正则表达式
/\{(.+)\}/g
在PHP正则表达式中我可以使用修饰符“U”(U修饰符:不贪婪。默认情况下匹配变得惰性).如果我使用 /\{(.+)\}/gU
,我的回复如下所示:
数组(5)["1","2","4","abc","abs"]
在 javascript 中没有修饰符 U。如果没有这个修饰符,我的回复如下所示:
数组(1)["1 2 4 abc abs"]
我该怎么做?
一种方法是通过添加 ?
修饰符使 +
不贪心:
"{1} {2} {4} {abc} {abs}".match(/\{(.+?)\}/g)
另一种方法是将 .
替换为 "anything except closing brace":
"{1} {2} {4} {abc} {abs}".match(/\{([^}]+)\}/g)
您可以删除所有 {
并分解每个 }
的字符串。是这样的:
var str = "{1} {2} {4} {abc} {abs}";
var result = str.replace(/{|}$/g,"").split(/} ?/);
document.write(result);
尝试 RegExp
/([a-z]+|\d+)(?=\})/ig
匹配 a-z
不区分大小写或数字字符后跟 }
"{1} {2} {4} {abc} {abs}".match(/([a-z]+|\d+)(?=\})/ig)
console.log("{1} {2} {4} {abc} {abs}".match(/([a-z]+|\d+)(?=\})/ig))