我正在使用基於用戶輸入的正則表達式搜索文本的應用程序。用戶擁有的一個選項是使用星號包含「匹配0個或更多個字符」通配符。我需要這個來匹配單詞邊界。我的第一次嘗試是將所有星號轉換爲(?:(?=\B).)*
,這對大多數情況來說工作正常。它顯然失敗的地方在於.Net考慮了一個Unicode字符與一個變音符號之間的位置,而另一個字符則是一個斷字符。我認爲這是一個錯誤,並將其提交到Microsoft feedback site。正則表達式與unicode變音符的斷字
然而,在此期間,我需要實現功能和產品出貨。我正在考慮使用[\p{L}\p{M}\p{N}\p{Pc}]*
作爲替代文本,但坦率地說,我在「我真的不明白這將要做什麼」的土地。我的意思是,我可以閱讀規格說明書,但我不確定我是否可以對此進行充分測試,以確保其符合我的期望。我根本不知道要測試的所有邊界條件。該應用程序由跨文化工作人員使用,其中許多人處於部落地區,因此需要支持任何和所有書寫系統,其中包括一些使用零寬度單詞分隔的書寫系統。
有沒有人有更優雅的解決方案,或者可以確認/更正上面的代碼,或提供一些指針?
感謝您的幫助。