2
我有以下的阿拉伯文字:阿拉伯語正則表達式匹配發聲
الْكَلَامُ عَلَيْهِ مِنْ وُجُوهٍ:أَحَدُهَا: أَنَّ هَذِهِ الْجُمْلَةَ وَنَظَائِرَهَا مِنْ خُطْبَةِ الْكِتَابِ مُرَبَّعَةٌ نُونِيَّةٌ.
正如你可以看到字符發聲。據我所知,每個人聲都被認爲是一個角色。起初我在網上正則表達式測試網站嘗試了以下選項,他們都工作並返回結果,但在C#中它從來沒有工作。我試過如下:
var t1 = Regex.Matches(txt, "/[ًٍَِْ]/g", RegexOptions.RightToLeft);
var t2 = Regex.Matches(txt, "/([\u064B-\u0652])/g", RegexOptions.RightToLeft);
在T1,我試圖將自己匹配主唱(),但沒有奏效,因爲它給零個匹配。在t2中,我嘗試使用它們的Unicode表示法,但它也不起作用。
多麼愚蠢的錯誤....感謝。 – ykh
我不能在我的VS2012中正確地複製't1' :(看起來有些亂七八糟......捕獲的組數很少(只有42次出現)。我會用十六進制數字。你有沒有考慮用'\ p {IsArabic }'? –
@stribizhev unicode範圍內有8個字符''[u064B- \ u0652]',而顯式正則表達式只有5個字符。如果你做了一個'(?![])[\ u064B- \ u0652 ]'你會看到有13個字符被特定範圍排除,並且包含在unicode範圍內(55-42 = 13) – xanatos