ホームページ > バックエンド開発 > PHPチュートリアル > phpの置き換え問題。中国語、数字、文字以外の場合は、- に置き換えてください。

phpの置き換え問題。中国語、数字、文字以外の場合は、- に置き換えてください。

WBOY
リリース: 2016-06-23 14:27:39
オリジナル
1689 人が閲覧しました

PHPの置換問題。中国語、数字、文字以外の場合は、-- スペース、. % を _

に置き換えてください。たとえば、このファイル名 ??????_TRAX_Full HD_1080pPC.txt

は --_ に置き換えられます。 ---_-- _TRAX_Full HD_1080pPC.txt

現在str_ireplace関数を使用しているのですが実装できないようです。 。
中国語以外の文字、数字、文字を -- に置き換える関数を書くのを手伝ってくれる人はいますか?
それから、次の関数を使用して $str を返すことができ、問題ないはずです。 。

return str_ireplace(array(' ','&','・','%'),'_',$str);
ログイン後にコピー


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

半角英語のみを計算
preg_replace('#[^a-z0-9x4E00-x9FCF]#iuU', '--', $str);

Include全角数字 半角英数字
preg_replace('#[^a-z0-9xff10-xff19xff21-xff3axff41-xff5ax4E00-x9FCF]#iuU', '--', $str); は含まれません。すべて漢字なので、誤って殺す可能性がありますが、その可能性は非常に低いです


xff10-xff19 全角 0-9
xff21-xff3a 全角 A-Z
xff41-xff5a 全角 a-z
Angular数値
preg_replace('#[^a-z0-9x4E00-x9FCF]#iuU', '--', $str);

全角および半角の英数字が含まれます

preg_replace('#[^a- z0-9xff10-xff19xff21- xff3axff41-xff5ax4E00-x9FCF]#iuU', '--', $str);
上記の正規表現にはすべての漢字が含まれていないため、誤って強制終了される可能性がありますが、確率は非常に低い


xff10-xff19 全角 0-9
xff21- xff3a 全角 A-Z
xff41-xff5a 全角 a-z
x4E00-x9FCF 主要な漢字(少数の古代文字と異体字は含まれていません)この範囲)
期待した効果が得られないようですが、とにかくありがとうございます

ああ、上記の角括弧内に + 記号があります。単一の文字を置き換えるだけです
混合コンパイルの場合は、置換される文字に漢字や英語の数字が混在していることを意味します
ああ、上記は単一の文字置換です

混合コンパイルである場合、問題は次のとおりです。漢字や英語の数字が混じった文字を置換する必要があります


韓国語と特殊記号だけを正規表現で置換できますか?


あ、角括弧の外側に+記号がありますが、これは単一の文字だけを置換するものです
混在していると、置換文字が漢字や英語の数字と混ざってしまい面倒です。

正規表現を使用して韓国語と特殊文字のみを置換できます。

中国語の文章を理解するのは難しいです
正規表現を使用して韓国語の文字と特殊記号だけを置き換えることはできますか?
正規表現を使用して韓国語の文字と特殊記号のみを置換することはできますか?

どういう意味ですか?

韓国語の範囲は AC00-D7AF (メイン フォント) です
特殊記号は難しく、何万もの記号が含まれており、それらは非常に散らばっています。ある国
たとえば、物理計算の記号の多くは古代ギリシャ語です
一般的に、選択できる記号の範囲は限られています

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート