我想检查字符串是否包含阿拉伯文本。两个字符串都是阿拉伯语。
\n\n我尝试过使用 contains 方法,但它不起作用,不知道为什么会发生这种情况。
\n\n_ayahList.forEach((item) {\n if (item.arabic.trim().contains(searchTxt.trim())) {\n _searchAyahList.add(item);\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n但它不起作用。
\n\n编辑
\n\n搜索文本\n\xd8\xa7\xd9\x84\xd9\x91\xd9\x8e\xd8\xb0\xd9\x90\xd9\x8a\xd9\x86\xd9\x8e \xd9\x83\xd9\x8e\xd9 \x81\xd9\x8e\xd8\xb1\xd9\x8f\xd9\x88\xd8\xa7 \xd9\x88\xd9\x8e\xd8\xb5\xd9\x8e\xd8\xaf\xd9\x91\xd9\x8f \xd9\x88\xd8\xa7\xd8\xb9\xd9\x8e\xd9\x86\xd8\xb3\xd9\x8e\xd8\xa8\xd9\x90\xd9\x8a\xd9\x84\xd9\x90\xd8 \xa7\xd9\x84
\n\n阿拉伯文本\n\xd8\xa7\xd9\x84\xd9\x91\xd9\x8e\xd8\xb0\xd9\x90\xd9\x8a\xd9\x86\xd9\x8e \xd9\x83\xd9\x8e\xd9 \x81\xd9\x8e\xd8\xb1\xd9\x8f\xd9\x88\xd8\xa7 \xd9\x88\xd9\x8e\xd8\xb5\xd9\x8e\xd8\xaf\xd9\x91\xd9\x8f \xd9\x88\xd8\xa7\xd8\xb9\xd9\x8e\xd9\x86\xd8\xb3\xd9\x8e\xd8\xa8\xd9\x90\xd9\x8a\xd9\x84\xd9\x90\xd8 \xa7\xd9\x84\xd9\x84\xd9\x91\xd9\x8e\xd9\x87\xd9\x90 \xd8\xa3\xd9\x8e\xd8\xb6\xd9\x8e\xd9\x84\xd9\x91 \xd9\x8e \xd8\xa3\xd9\x8e\xd8\xb9\xd9\x92\xd9\x85\xd9\x8e\xd8\xa7\xd9\x84\xd9\x8e\xd9\x87\xd9\x8f\xd9 \x85\xd9\x92
\n\n搜索文本 2:\n\xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x90\xd9\x8a\xd9\x85\xd9\x90 \xd9\x85 \xd8\xad\xd9\x85\xd8\xaf
\n\n阿拉伯语文本 2 :\n\xd8\xa8\xd9\x90\xd8\xb3\xd9\x92\xd9\x85\xd9\x90 \xd8\xa7\xd9\x84\xd9\x84\xd9\x90\xd9\x91 \xd9\x8e\xd9\x87\xd9\x90 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x92\xd9\x85\xd9\x8e\xd9 \xb0\xd9\x86\xd9\x90 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x90\xd9\x8a\xd9\x85\xd9\x90 \xd9\x85\xd8\xad\xd9\x85\xd8\xaf
\n它有助于首先规范化字符串,删除变音符号。
\n\nvoid main() {\n String t2 = \'\xd8\xa8\xd9\x90\xd8\xb3\xd9\x92\xd9\x85\xd9\x90 \xd8\xa7\xd9\x84\xd9\x84\xd9\x90\xd9\x91\xd9\x8e\xd9\x87\xd9\x90 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x92\xd9\x85\xd9\x8e\xd9\xb0\xd9\x86\xd9\x90 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x90\xd9\x8a\xd9\x85\xd9\x90 \xd9\x85\xd8\xad\xd9\x85\xd8\xaf\';\n String s2 = \'\xd8\xa7\xd9\x84\xd8\xb1\xd9\x91\xd9\x8e\xd8\xad\xd9\x90\xd9\x8a\xd9\x85\xd9\x90 \xd9\x85\xd8\xad\xd9\x85\xd8\xaf\';\n\n print(t2);\n String nt2 = normalise(t2);\n print(nt2);\n print(t2.codeUnits);\n print(nt2.codeUnits);\n\n print(s2);\n String ns2 = normalise(s2);\n print(ns2);\n print(s2.codeUnits);\n print(ns2.codeUnits);\n\n print(nt2.contains(ns2)); // prints "true"\n}\n\nString normalise(String input) => input\n .replaceAll(\'\\u0610\', \'\') //ARABIC SIGN SALLALLAHOU ALAYHE WA SALLAM\n .replaceAll(\'\\u0611\', \'\') //ARABIC SIGN ALAYHE ASSALLAM\n .replaceAll(\'\\u0612\', \'\') //ARABIC SIGN RAHMATULLAH ALAYHE\n .replaceAll(\'\\u0613\', \'\') //ARABIC SIGN RADI ALLAHOU ANHU\n .replaceAll(\'\\u0614\', \'\') //ARABIC SIGN TAKHALLUS\n\n //Remove koranic anotation\n .replaceAll(\'\\u0615\', \'\') //ARABIC SMALL HIGH TAH\n .replaceAll(\n \'\\u0616\', \'\') //ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH\n .replaceAll(\'\\u0617\', \'\') //ARABIC SMALL HIGH ZAIN\n .replaceAll(\'\\u0618\', \'\') //ARABIC SMALL FATHA\n .replaceAll(\'\\u0619\', \'\') //ARABIC SMALL DAMMA\n .replaceAll(\'\\u061A\', \'\') //ARABIC SMALL KASRA\n .replaceAll(\'\\u06D6\',\n \'\') //ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA\n .replaceAll(\'\\u06D7\',\n \'\') //ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA\n .replaceAll(\'\\u06D8\', \'\') //ARABIC SMALL HIGH MEEM INITIAL FORM\n .replaceAll(\'\\u06D9\', \'\') //ARABIC SMALL HIGH LAM ALEF\n .replaceAll(\'\\u06DA\', \'\') //ARABIC SMALL HIGH JEEM\n .replaceAll(\'\\u06DB\', \'\') //ARABIC SMALL HIGH THREE DOTS\n .replaceAll(\'\\u06DC\', \'\') //ARABIC SMALL HIGH SEEN\n .replaceAll(\'\\u06DD\', \'\') //ARABIC END OF AYAH\n .replaceAll(\'\\u06DE\', \'\') //ARABIC START OF RUB EL HIZB\n .replaceAll(\'\\u06DF\', \'\') //ARABIC SMALL HIGH ROUNDED ZERO\n .replaceAll(\'\\u06E0\', \'\') //ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO\n .replaceAll(\'\\u06E1\', \'\') //ARABIC SMALL HIGH DOTLESS HEAD OF KHAH\n .replaceAll(\'\\u06E2\', \'\') //ARABIC SMALL HIGH MEEM ISOLATED FORM\n .replaceAll(\'\\u06E3\', \'\') //ARABIC SMALL LOW SEEN\n .replaceAll(\'\\u06E4\', \'\') //ARABIC SMALL HIGH MADDA\n .replaceAll(\'\\u06E5\', \'\') //ARABIC SMALL WAW\n .replaceAll(\'\\u06E6\', \'\') //ARABIC SMALL YEH\n .replaceAll(\'\\u06E7\', \'\') //ARABIC SMALL HIGH YEH\n .replaceAll(\'\\u06E8\', \'\') //ARABIC SMALL HIGH NOON\n .replaceAll(\'\\u06E9\', \'\') //ARABIC PLACE OF SAJDAH\n .replaceAll(\'\\u06EA\', \'\') //ARABIC EMPTY CENTRE LOW STOP\n .replaceAll(\'\\u06EB\', \'\') //ARABIC EMPTY CENTRE HIGH STOP\n .replaceAll(\'\\u06EC\', \'\') //ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE\n .replaceAll(\'\\u06ED\', \'\') //ARABIC SMALL LOW MEEM\n\n //Remove tatweel\n .replaceAll(\'\\u0640\', \'\')\n\n //Remove tashkeel\n .replaceAll(\'\\u064B\', \'\') //ARABIC FATHATAN\n .replaceAll(\'\\u064C\', \'\') //ARABIC DAMMATAN\n .replaceAll(\'\\u064D\', \'\') //ARABIC KASRATAN\n .replaceAll(\'\\u064E\', \'\') //ARABIC FATHA\n .replaceAll(\'\\u064F\', \'\') //ARABIC DAMMA\n .replaceAll(\'\\u0650\', \'\') //ARABIC KASRA\n .replaceAll(\'\\u0651\', \'\') //ARABIC SHADDA\n .replaceAll(\'\\u0652\', \'\') //ARABIC SUKUN\n .replaceAll(\'\\u0653\', \'\') //ARABIC MADDAH ABOVE\n .replaceAll(\'\\u0654\', \'\') //ARABIC HAMZA ABOVE\n .replaceAll(\'\\u0655\', \'\') //ARABIC HAMZA BELOW\n .replaceAll(\'\\u0656\', \'\') //ARABIC SUBSCRIPT ALEF\n .replaceAll(\'\\u0657\', \'\') //ARABIC INVERTED DAMMA\n .replaceAll(\'\\u0658\', \'\') //ARABIC MARK NOON GHUNNA\n .replaceAll(\'\\u0659\', \'\') //ARABIC ZWARAKAY\n .replaceAll(\'\\u065A\', \'\') //ARABIC VOWEL SIGN SMALL V ABOVE\n .replaceAll(\'\\u065B\', \'\') //ARABIC VOWEL SIGN INVERTED SMALL V ABOVE\n .replaceAll(\'\\u065C\', \'\') //ARABIC VOWEL SIGN DOT BELOW\n .replaceAll(\'\\u065D\', \'\') //ARABIC REVERSED DAMMA\n .replaceAll(\'\\u065E\', \'\') //ARABIC FATHA WITH TWO DOTS\n .replaceAll(\'\\u065F\', \'\') //ARABIC WAVY HAMZA BELOW\n .replaceAll(\'\\u0670\', \'\') //ARABIC LETTER SUPERSCRIPT ALEF\n\n //Replace Waw Hamza Above by Waw\n .replaceAll(\'\\u0624\', \'\\u0648\')\n\n //Replace Ta Marbuta by Ha\n .replaceAll(\'\\u0629\', \'\\u0647\')\n\n //Replace Ya\n // and Ya Hamza Above by Alif Maksura\n .replaceAll(\'\\u064A\', \'\\u0649\')\n .replaceAll(\'\\u0626\', \'\\u0649\')\n\n // Replace Alifs with Hamza Above/Below\n // and with Madda Above by Alif\n .replaceAll(\'\\u0622\', \'\\u0627\')\n .replaceAll(\'\\u0623\', \'\\u0627\')\n .replaceAll(\'\\u0625\', \'\\u0627\');\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4672 次 |
| 最近记录: |