为什么搜索。*在UltraEdit中不起作用?

时间:2014-04-11 07:25:18

标签: unix ultraedit

在UltraEdit中,我启用了UNIX风格的正则表达式,但查找.*不起作用;只有.+会找到一些东西。

为什么,以及如何使其发挥作用?

我应该补充说我正在使用UltraEdit 11.10b。是否有已知的错误或什么?

1 个答案:

答案 0 :(得分:1)

.匹配除回车和换行之外的任何字符。

*匹配前面的表达式 0 或更多次,但非贪婪。

非贪婪意味着尽可能少的字符来获得表达式的正面结果。

表达式.*仅在两个固定字符串之间有意义。你不能只使用.*,因为没有匹配也是这个表达式的正匹配。除行终止符之外的任何字符都是零,这对于此表达式的正结果是足够的,因此仅使用.*始终不匹配。或者换句话说:找不到正则表达式.*的正面结果。

word.*.*word也没有用,因为只有word找到了这些表达式,或者你得到了不可预测的结果。

在搜索字符串中使用.*.+时,查找引擎始终需要前后固定字符串,或者需要^$之类的非匹配锚点从哪里开始选择除 0 0 以外的任何字符 1 或更多次。

顺便说一句:UE v11.10b的Unix正则表达式引擎只是与Perl正则表达式语法一起使用的UltraEdit正则表达式引擎。这也解释了为什么Unix正则表达式引擎仅支持UltraEdit正则表达式引擎支持的内容,只是使用一组不同的特殊字符。您应该考虑将UltraEdit升级到当前版本21.10,其中包含最新版本的真正Perl正则表达式引擎,其中包含此正则表达式引擎的所有强大功能。