我想用正則表達式來匹配Unicode字符。我發現這可以使用Unicode Category or Block或更準確地使用這些Unicode Categories和Supported Named Blocks。如何使用.net匹配Unicode字符?
問題是我無法使用LINQPAD 4
和Regex.IsMatch
函數使其工作。例如,試圖匹配一個簡單的拉丁字符是這樣的:
Console.WriteLine(Regex.IsMatch("d", @"[\0000-\007F]+"));
引發以下錯誤:
ArgumentException4 parsing "[\0000-\007F]+" - [x-y] range in reverse order.
,並使用此:
Console.WriteLine(Regex.IsMatch("d", @"\L{IsBasicLatin}{1}"));
給我:
parsing "\L{IsBasicLatin}{1}" - Unrecognized escape sequence \L.
在我真實的情況下,我我打算用IsCyrillic
替換IsLatin
,但我需要使其與拉丁文一起工作,以確保它是OK
。
任何人都可以告訴我做錯了什麼嗎?
我相信你使用了錯誤的轉義字符。查看手冊:https://msdn.microsoft.com/en-us/library/20bw873z%28v=vs.110%29.aspx。你正在尋找的角色是\ p imo。 – Santhos
所有字符都是Unicode。那麼,問題是什麼? –