在 UltraEdit 中,我启用了 UNIX 风格的正则表达式,但查找.*
不起作用;只会.+
发现一些东西。
为什么,我怎样才能让它工作?
我应该补充一点,我正在使用 UltraEdit 11.10b。是否有已知的错误或什么?
.
匹配除回车和换行之外的任何字符。
*
匹配前面的表达式0次或更多次,但不是贪婪的。
非贪婪意味着尽可能少的字符以获得表达式的积极结果。
该表达式.*
仅在两个固定字符串之间有意义。你不能使用 just .*
as nothing matches is a positive match 对于这个表达式,也是。除了行终止符零次之外的任何字符都足以使该表达式得到肯定的结果,因此使用 just.*
总是不匹配任何内容。或者换句话说:nothing found 是正则表达式的积极结果.*
。
也没有用,因为这些表达式只是word.*
被发现,否则你会得到不可预测的结果。.*word
word
在搜索字符串中.*
或.+
在搜索字符串中,查找引擎总是需要一个固定字符串之前和之后,或者一个不匹配的锚,例如^
or$
来知道从哪里开始选择除行终止符0之外的任何字符1次或更多次。
顺便说一句:UE v11.10b 的Unix 正则表达式引擎就是使用Perl 正则表达式语法的UltraEdit 正则表达式引擎。这也解释了为什么 Unix 正则表达式引擎只支持 UltraEdit 正则表达式引擎支持的内容,只是使用了一组不同的特殊字符。您应该考虑将 UltraEdit 升级到当前版本 21.10,它具有最新版本的真正 Perl 正则表达式引擎,包括该正则表达式引擎的所有强大功能。