2011-07-10 8 views
8

アラビア語以外の文字をすべて文字列から削除する必要があり、最終的にはwith the help of people from stack-overflowがアラビア語以外のすべての文字を取り除くために次の正規表現を思いついた。アラビア語でガベージ文字を削除する

preg_replace('/[^\x{0600}-\x{06FF}]/u','',$string); 

問題は、空白も削除されることです。そして今私はA-Z,a-z,0-9, [email protected]#$%^&*()からのキャラクターが必要であることを発見しました。だから私はどのように正規表現を変更する必要がありますか?あなた

答えて

8

に感謝

はあなたの文字クラスに保存しておきたいものを追加します。

preg_replace('/[^\x{0600}-\x{06FF}A-Za-z [email protected]#$%^&*()]/u','', $string); 
1

は、あなたがこの文字列を持っていると仮定します。

$str = "Arabic Text نص عربي test 123 و,.m,............ ~~~ ٍ،]ٍْ}~ِ]ٍ}"; 

これはスペースのみでアラビア文字を維持します。

echo preg_replace('/[^أ-ي ]/ui', '', $str); 

これは数字とアラビア語と英語の文字を維持するだけ

echo preg_replace('/[^أ-يA-Za-z0-9 ]/ui', '', $str); 

これは晩年にあなたの質問にお答えします。上記の例からより詳細に

echo preg_replace('/[^أ-يA-Za-z [email protected]#$%^&*()]/ui', '', $str); 
0

、下記考慮すると、あなたの文字列です:

$string = '<div>This..</div> <a>is<a/> <strong>hello</strong> <i>world</i> ! هذا هو مرحبا العالم! [email protected]#$%^&&**(*)<>?:";p[]"/.,\|`[email protected]#$%^&^&*(()908978867564564534423412313`1`` "Arabic Text نص عربي test 123 و,.m,............ ~~~ ٍ،]ٍْ}~ِ]ٍ}"; '; 

コード:

echo preg_replace('/[^\x{0600}-\x{06FF}A-Za-z0-9 [email protected]#$%^&*().]/u','', strip_tags($string)); 

Allows:英文字、アラビア文字、0〜9と文字[email protected]#$%^&*().

Removes:すべてのhtmlタグとspeci上記以外のアル文字

関連する問題