我需要在Javascript中使用正则表达式在下面的字符串中仅获取“Callout
”值。
str = "aaa {Callout [apple]} bbbb";
答案 0 :(得分:1)
您可以使用前瞻和组匹配:
\{(\w+)(?=\b)
JS代码:
var re = new RegExp(/\{(\w+)(?=\b)/);
var m = re.exec("aaa {Callout [apple]} bbbb");
alert(m[1]);
答案 1 :(得分:1)
在我看来,保持简单。如果您希望字符串中的第一个匹配项通过result[0]
..
var string = "asdfadsfsad {Callout1 [callout1]} dasdfsadf {Callout2 [callout2]} ccc]";
var result = string.match(/[^{]+(?=\[)/g);
console.log(result[0]); // => "Callout1 "
对于所有比赛,只需直接访问result
。
console.log(result); // => [ 'Callout1 ', 'Callout2 ' ]
正则表达式:
[^{]+ any character except: '{' (1 or more times)
(?= look ahead to see if there is:
\[ '['
) end of look-ahead
答案 2 :(得分:0)
试试这个
{(.*?)\[
var myString = "asdfadsfsad {Callout [callout1]} dasdfsadf {Callout [callout2]} ccc]";
var myRegexp = /{(.*?)\[/g;
var match = myRegexp.exec(myString);
alert(match[1]);