我有一个字符串
" {1} {2} {4} {abc} {abs}"
和正则表达式
/\{(.+)\}/g
在PHP正则表达式中,我可以使用修饰符" U " ( U修饰符:Ungreedy。默认情况下匹配变得懒惰)。如果我使用/\{(.+)\}/gU
,我的回答如下:
数组(5)[" 1"," 2"," 4"," abc",&#34 ; ABS" ]
在javascript中没有修饰符U.如果没有此修饰符,我的响应将如下所示:
数组(1)[" 1 2 4 abc abs" ]
我怎么能这样做?
答案 0 :(得分:1)
一种方法是通过添加+
修饰符来使?
无效:
"{1} {2} {4} {abc} {abs}".match(/\{(.+?)\}/g)
另一种方法是将.
替换为“除了右括号之外的任何东西”:
"{1} {2} {4} {abc} {abs}".match(/\{([^}]+)\}/g)
答案 1 :(得分:0)
您可以删除所有{
并按}
分解字符串。像这样的东西:
var str = "{1} {2} {4} {abc} {abs}";
var result = str.replace(/{|}$/g,"").split(/} ?/);
document.write(result);

答案 2 :(得分:0)
尝试使用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))