在javascript正则表达式中获取花括号之间的内容

时间:2011-04-02 03:17:10

标签: javascript regex string

我试图用javascript获取花括号之间的内容,我找到了这个帖子:

Regex to get string between curly braces "{I want what's between the curly braces}"

但我不知道如何应用像'/ {([^}] +)} /'

这样的正则表达式

我尝试过string.replace('/ {([^}] +)} /','');

然而这不起作用。

5 个答案:

答案 0 :(得分:25)

以下是使用示例:

var found = [],          // an array to collect the strings that are found
    rxp = /{([^}]+)}/g,
    str = "a {string} with {curly} braces",
    curMatch;

while( curMatch = rxp.exec( str ) ) {
    found.push( curMatch[1] );
}

console.log( found );    // ["string", "curly"]

答案 1 :(得分:3)

喜欢这个吗?

var x="omg {wtf} bbq";

alert(x.match(/{([^}]+)}/));

答案 2 :(得分:2)

试试这个

/[^{\}]+(?=})/g

例如

  

欢迎使用由Media Temple主办的{gskinner.com},{ssd.sd}的RegExr v2.1!

它将返回'gskinner.com','ssd.sd'

答案 3 :(得分:1)

"{I want what's between the curly braces}".replace(/{(.*)}/, "$1");

这应该有效,干杯。

注意:即使它是空字符串,你也会在括号中“获取所有内容”。

更新 的 如果要匹配字符串中间的第一个字符,请使用“match”:

"how are you {I want what's between the curly braces} words".match(/{(.*)}/)[1];

你可以这样做:

console.log("how are you {I want what's between the curly braces} words".match(/{(.*)}/));

然后你会看到匹配项的列表,将它们用于你想要的任何东西。

血腥细节:http://www.w3schools.com/jsref/jsref_obj_regexp.asp

答案 4 :(得分:0)

这将返回匹配文本的数组。
map函数将返回不带{}的文本。

const text = "Regex to get string between curly braces {I want what's between the curly braces}"
const result = text.match(/{([^}]+)}/g)
  .map(res => res.replace(/{|}/g , ''))