如何匹配javascript正则表达式中字符之间的字符串

时间:2016-03-31 11:33:13

标签: javascript regex

我尝试使用正则表达式匹配之间的某些字符之间的字符?我对此很新,但我到了某个地方......

我希望匹配' [['和']]'在以下字符串中:

'您好,我[[姓名]]是[[Joffrey]]'。

到目前为止,我已经能够使用以下正则表达式检索[[name[[Joffrey

\[\[([^\]])*\g

我已尝试过分组等,但似乎无法获得“内容”。仅限{nameJoffrey)。

有什么想法吗?

由于

4 个答案:

答案 0 :(得分:1)

var regex = /\[\[(.*?)\]\]/g;
var input = 'Hello, my my [[name]] is [[Joffrey]]';
var match;

do {
    match = regex.exec(input);
    if (match) {
        console.log(match[1]);
    }
} while (match);

将在您的控制台中打印两个匹配项。根据您是否要打印出空白值,您可能希望将“*”替换为“+”/\[\[(.+?)\]\]/g

答案 1 :(得分:1)

这是正则表达式:

/\[\[(.*?)\]]/g

<强>解释

\[ Escaped character. Matches a "[" character (char code 91).

( Groups multiple tokens together and creates a capture group for extracting a substring or using a backreference.

. Dot. Matches any character except line breaks.
* Star. Match 0 or more of the preceding token.
? Lazy. Makes the preceding quantifier lazy, causing it to match as few characters as possible.
)
\] Escaped character. Matches a "]" character (char code 93).
] Character. Matches a "]" character (char code 93).

答案 2 :(得分:0)

试试这个/\[\[(\w+)\]\]/g

regex101演示https://regex101.com/r/xX1pP0/1

答案 3 :(得分:0)

var str = 'Hello, my [[name]] is [[Joffrey]]';
var a = str.match(/\[\[(.*?)\]\]/g);