javascript regex - 字符类中的括号和括号

Posted

技术标签:

【中文标题】javascript regex - 字符类中的括号和括号【英文标题】:javascript regex - brackets and parenthesis in character-class 【发布时间】:2016-05-20 21:31:58 【问题描述】:

我想匹配这些字符: [] () 在 javascript 中的正则表达式中的字符类中,我该怎么做?

grep 中的解决方案是: (regex - brackets and parenthesis in character-class)

<script>
var text = "echo some text (some text in parenthesis) [some other in brackets]";
var patt = /[][()]/g
console.log(text.match(patt));
</script>

但是这个正则表达式在 JS 中没有提供匹配

【问题讨论】:

需要在括号表达式中转义右方括号,如/[\][()]/g 【参考方案1】:

您应该转义正则表达式模式中的方括号:

var text = "echo some text (some text in paranthesis) [some other in brackets]",
    patt = /[\]\[()]/g;

console.log(text.match(patt));  // ["(", ")", "[", "]"]

【讨论】:

【参考方案2】:

您的示例在正则表达式中使用方括号的特殊含义。如果您希望它们在字面上匹配,则需要使用 '\' 字符对它们进行转义。您可以查看this 示例,并将鼠标悬停在字符上,以使用您的示例查看每个字符的含义,并查看this 用于工作的示例。

【讨论】:

以上是关于javascript regex - 字符类中的括号和括号的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript RegEx:在两个“标记”之间替换字符串中的文本

在Javascript中查找不包含/ indexOf / Regex的字符串中的子字符串

一个java小问题,Pattern类中的类方法(静态方法)compile(String regex

Javascript regex - 从字符串中获取函数名

Regex正则表达式

如何保留 Regex.Split 的分隔符?