ホームページ >バックエンド開発 >PHPチュートリアル >[^a-zA-Z0-9u4e00-u9fa5s] この一致するシンボルを使用していますが、php の preg_replace で常にエラーが報告されます。修正するにはどうすればよいですか?

[^a-zA-Z0-9u4e00-u9fa5s] この一致するシンボルを使用していますが、php の preg_replace で常にエラーが報告されます。修正するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:55:311791ブラウズ

[^a-zA-Z0-9u4e00-u9fa5s] アドバイスをお願いします


ディスカッションへの返信(解決策)

/[^a-zA-Z0-9x{4e00}-x{9fa5} s]/ u
は utf-8 でエンコードされている必要があります

しかし、utf-8 でエンコードされている場合、w はすでに中国語の文字と一致します。なぜわざわざ

エラー メッセージが表示されるのでしょうか?

エラーメッセージは何ですか?


PHP の pre_place はすべてのシンボルに一致しますが、この規則に一致しません。落ち込んでいます。

header('Content-type: text/html;charset=utf-8');$s = 'asa-de+中文123';$p = '/[^a-zA-Z0-9\x{4e00}-\x{9fa5}\s]/u';echo preg_replace($p, '', $s); //asade中文123echo preg_replace('/[^\w\s]/u', '', $s); //asade中文123

エラー メッセージは何ですか?

警告: PREG_MATCH_ALL() [FUNCTION.PREG-MATCH-ALL]: コンパイルに失敗しました: PCRE は C:WAMPWWWINDEX_MULTI.PHP のオフセット 15 で L、L、N{NAME}、U、または U をサポートしていません

header('Content-type: text/html;charset=utf-8');$s = 'asa-de+中文123';$p = '/[^a-zA-Z0-9\x{4e00}-\x{9fa5}\s]/u';echo preg_replace($p, '', $s); //asade中文123echo preg_replace('/[^\w\s]/u', '', $s); //asade中文123

どこで間違ったのかまだわかりませんが、ツールマッチングは引き続き使用できますが、あなたの方法は成功しました。間違いはありません。学びました、ありがとう

これまでのところ、PHPの正規表現はu4e00表現をサポートしていません
は間違っていません、問題は php にあります

これまでのところ、php の正規表現は u4e00 のような表現をサポートしていません
つまり、あなたは間違っていません、問題は php にあります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。