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

Unix 为什么在UltraEdit中搜索。*不起作用?,unix,ultraedit,Unix,Ultraedit,在UltraEdit中,我启用了UNIX样式的正则表达式,但查找*不起作用;只有+会找到一些东西 为什么,我怎样才能让它工作 我应该补充一点,我正在使用UltraEdit 11.10b。是否存在已知错误或其他问题?匹配除回车符和换行符以外的任何字符 *匹配前面的表达式0或更多次,但不是贪婪的 非贪婪意味着尽可能少的字符以获得表达式的正结果 表达式*仅在两个固定字符串之间有意义。不能仅使用*,因为没有匹配项也不能与此表达式正匹配。除了行终止符零次之外的任何字符都足以使此表达式产生肯定结果,因此仅使

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

为什么,我怎样才能让它工作


我应该补充一点,我正在使用UltraEdit 11.10b。是否存在已知错误或其他问题?

匹配除回车符和换行符以外的任何字符

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

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

表达式
*
仅在两个固定字符串之间有意义。不能仅使用
*
,因为没有匹配项也不能与此表达式正匹配。除了行终止符零次之外的任何字符都足以使此表达式产生肯定结果,因此仅使用
*
始终不匹配任何内容。或者换句话说:对于正则表达式
*
,找不到任何结果都是肯定的

另外,
word.*
*word
也没有用,因为只有找到
word
或得到不可预测的结果时,这些表达式才有用

使用搜索字符串中的
*
+
时,查找引擎始终需要前后一个固定字符串,或者像
^
$
这样的非匹配锚点,以知道从何处开始选择任何字符,但行终止符0分别1或更多次


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

哇,非贪婪*默认值有些出乎意料,对我来说似乎不太明智。有语法可以明确地使quantor非贪婪,但不能使quantor贪婪,是吗?同样,您考虑的是Perl正则表达式,但使用的是不支持Perl正则表达式的UltraEdit版本。UE v12.00引入的Perl正则表达式引擎默认情况下是贪婪的,因为使用此正则表达式引擎,可以通过添加问号将。*和.+从贪婪更改为非贪婪。但是Unix正则表达式引擎不是Perl正则表达式引擎,它只是与Perl语法一起使用的有限的UltraEdit正则表达式引擎。