我正在使用RegexKitLite,后者又将ICU用作其引擎。尽管有文档,但在搜索“xxxxxxxxxxx”时,类似于/ x * /的正则表达式将匹配空字符串。它表现得像/ x *?/ should。我想绕过这个错误,当它出现时,我正考虑在正则表达式匹配返回0长度结果时重写任何未转义的* as +。我天真的猜测是,带有+ s的正则表达式总是会返回正确结果的子集。这有什么意想不到的后果?我正确的方式吗?修复正则表达式以解决ICU/RegexKitLite问题
FWIW,ICU也提供* +操作符,但它也不起作用。
编辑:我应该已经更清楚了:这是一个交互式应用程序的搜索领域。我无法控制用户输入的正则表达式。破碎的*支持似乎是ICU中的一个错误。我当然希望我不需要在我的代码中包含该POS,但它是镇上唯一的游戏。
您正在使用什么版本的ICU/RegexKitLite?文档的哪一部分会导致您期望获得不同的结果? – 2011-02-14 17:55:03
我试过Linux上的ICU 4.2以及MacOS(3.6,我认为)。我希望*是贪婪的,因为ICU医生为*操作员说:“匹配0次或更多次,尽可能匹配。”请参阅此pdf的第112页:http://icu-project.org/userguide/icu.pdf – George 2011-02-15 06:38:17
该PDF已过时。我将删除它。 http://userguide.icu-project.org/是当前的用户指南。 – 2011-02-15 16:16:00