正则表达式括号之间的内容

时间:2010-12-16 15:20:30

标签: javascript jquery regex

有人可以用正则表达式来帮我解决以下问题:

  • 必须位于字符串的末尾
  • 删除(和)之间的所有字符,包括括号

这是我用javascript完成的。​​

这是我到目前为止所拥有的 -

var title = $(this).find('title').text().replace(/\w+\s+\(.*?\)/, "");

尽管如此,它似乎正在捕捉括号之外的一些字符。

3 个答案:

答案 0 :(得分:1)

这涉及到parens之间的匹配,并且仅处理字符串:\([^(]*\)\s*$。如果parens可能是嵌套的,则需要解析器,而不是正则表达式。

答案 1 :(得分:0)

var title = $(this).find('title').text().replace(/\([^()]*\)\s*$/, "");

应该有用。

要删除<>,您确实不需要正则表达式,但当然可以执行mystr.replace(/[<>]+/g, "");

这将匹配(,除括号外的任意数量的字符(从而确保只有最后的括号匹配)和),然后是字符串的结尾。

目前,它允许括号和字符串结尾之间的空格(并将删除它)。如果不需要,请从正则表达式中删除\s*位。

答案 2 :(得分:0)

$在哪里?你最后需要一美元,并可能捕获可选的空格。

var title = $(this).find('title').text().replace(/\s*\([^\)]*?\)\s*$/, "");

如果括号也可以是尖括号,那么这也可以匹配:

var title = $(this).find('title').text().replace(/\s*(\([^\)]*?\)|\<[^\>]*?\>)\s*$/, "");