有人可以用正则表达式来帮我解决以下问题:
这是我用javascript完成的。
这是我到目前为止所拥有的 -
var title = $(this).find('title').text().replace(/\w+\s+\(.*?\)/, "");
尽管如此,它似乎正在捕捉括号之外的一些字符。
答案 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*$/, "");