从字符串中删除括号和单词"The"

3
我一直在尝试自己理解正则表达式,但是我无法使字符串中的最后一个括号消失。

例如:

[The Day the Earth Stood Still]

我只能得到:

Day the Earth Stood Still]

使用以下正则表达式代码:

/(\[|\](^The ))\2/

我只是想看:

地球停转之日

非常感谢您的帮助。我已经花了3个小时试图自己解决这个问题...现在我放弃了。 :3

2个回答

2

你可以尝试:

\[The\s(.*)]

如果你需要使此函数在'The'不存在时也能去除括号,请尝试:

(?:\[The\s|\[)(.*)]

如果您认为可能会出现大小写不一致的情况,可以尝试以下方法:

(?:\[[Tt]he\s|\[)(.*)]

这里是一些代码,用于实现捕获文本而不包括括号和“The”:

var title = new Array();
title[0] = "[The Day the Earth Stood Still]";
title[1] = "[Independence Day]";
title[2] = "[the Day the Earth Stood Still]";

alert(title[0].match(/(?:\[[Tt]he\s|\[)(.*)]/)[1]);
alert(title[1].match(/(?:\[[Tt]he\s|\[)(.*)]/)[1]);
alert(title[2].match(/(?:\[[Tt]he\s|\[)(.*)]/)[1]);

在这里尝试一下:http://jsfiddle.net/aSwYz/


它会删除括号和“the”,但也会删除其他所有内容。 - Mattan138
你是说 jsfiddle 链接没有提供你想要的结果吗?你能否编辑你的问题,提供你使用的代码,以便更好地理解你的问题? - tinifni
你的例子完美运行。我的代码肯定还有其他问题。我会尝试一些东西。 - Mattan138

0
也许你应该采取保留的思路来考虑,而不是想着如何摆脱某些东西。
(?<=\[The\s*)[\w\s]*(?=\])

否则,你正试图在字符串的不同部分进行匹配,应该通过2个不同的匹配完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接