我正在使用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