有人能帮我写一个正则表达式吗?需要满足以下要求:
- 必须出现在字符串的结尾
- 删除括号内(包括括号)的所有字符
这将在JavaScript中完成。
这是我目前的代码 -
var title = $(this).find('title').text().replace(/\w+\s+\(.*?\)/, "");
然而,它似乎捕获了括号外的一些字符。
有人能帮我写一个正则表达式吗?需要满足以下要求:
这将在JavaScript中完成。
这是我目前的代码 -
var title = $(this).find('title').text().replace(/\w+\s+\(.*?\)/, "");
然而,它似乎捕获了括号外的一些字符。
这涉及到括号之间的匹配,仅在字符串结尾处:\([^(]*\)\s*$
。如果括号可能嵌套,则需要解析器而不是正则表达式。
var title = $(this).find('title').text().replace(/\([^()]*\)\s*$/, "");
应该可以工作。
要删除<
和>
,你不需要正则表达式,但当然你可以使用mystr.replace(/[<>]+/g, "");
这将匹配一个(
,除了括号之外的任意数量的字符(从而确保只有最后一个括号会匹配),然后是字符串的结尾。
目前,它允许在括号和字符串结尾之间有空格(并且也会将其删除)。如果不需要这样做,请从正则表达式中删除\s*
部分。
在哪里放置$
符号呢?您需要在结尾处添加一个美元符号,并且可能要捕获可选的空格。
var title = $(this).find('title').text().replace(/\s*\([^\)]*?\)\s*$/, "");
var title = $(this).find('title').text().replace(/\s*(\([^\)]*?\)|\<[^\>]*?\>)\s*$/, "");