2015-05-09 77 views
1

我是新来的正则表达式。我已经尝试了几个网站来帮助我构建正则表达式,但即使在最简单的正则表达式中,我也只是失败了。正则表达式选择括号内的文本(和括号内)

这次,我只是想构建一个正则表达式来帮助我在Notepad ++上搜索和替换字符串。我想删除所有以[开头并以]结尾的字符,并用空字符串替换它们。所以基本上我想找到括号内的所有字符,并将它们全部擦除。

所以,如果我有这样的字符串:

[2015-05-08] ERROR [US Channel Store]: An exception occurred at index.php.

我希望它变成:

ERROR : An exception occurred at index.php.

通过与正则表达式搜索文档,并与空字符串替换。

我最好的尝试使正则表达式是这样的:\[.*\]。 (该网站说,完整的正则表达式实际上将是/\[.*\]/g

但在预览中,我发现正则表达式的结果实际上选择了整条线。

有人可以指出错误的地方吗?你能给我正确的正则表达式吗?关于我的错误思考正则表达式的小解释将非常感谢,以帮助我学习。谢谢!

回答

1

让您的正则非贪婪(懒惰):

/\[.*?\]/g 

或者最好使用否定:

/\[[^]]*\]/g 
+1

'/\[.* ?\]/g'那真的有用!原来如此。我需要更多地了解这个贪婪vs非贪婪的东西。谢谢! –

+0

不客气,很高兴帮助。 – anubhava

+1

对不起。我知道。但是,当我尝试将其标记为已接受时,该网站称“您可以在x分钟后执行此操作”。好吧,我说。所以为了打发时间,我做了我的工作。然后最后我忘了回到这里来检查它。有时我真的很讨厌这里的系统,这使得我在问题发布后的10分钟内将答案标记为接受。再一次,谢谢! –

0

你应该试试这个表达式:/\[[^]]+\]/g

相关问题