我正在使用 RegexKitLite,而后者又使用 ICU 作为其引擎。尽管有文档,当搜索“xxxxxxxxxxx”时,像 /x*/ 这样的正则表达式将匹配空字符串。它的行为类似于 /x*?/ 应该。我想在它存在时绕过这个错误,并且我正在考虑将任何未转义的 * 重写为 + 当正则表达式匹配返回 0 长度结果时。我天真的猜测是用 +s 代替 *s 的正则表达式将始终返回正确结果的子集。这会带来什么意想不到的后果?我走对了吗?
FWIW,ICU 还提供了一个 *+ 运算符,但它也不起作用。
编辑:我应该更清楚:这是用于交互式应用程序的搜索字段。我无法控制用户输入的正则表达式。损坏的 * 支持似乎是 ICU 中的一个错误。我当然希望我不需要在我的代码中包含那个 POS,但这是城里唯一的游戏。