ホームページ  >  記事  >  バックエンド開発  >  中国語の文字で終わるPHP正規一致文字列

中国語の文字で終わるPHP正規一致文字列

WBOY
WBOYオリジナル
2016-06-23 14:12:501622ブラウズ

この投稿は zhuzhaodan によって最終編集されました: 2013-06-09 00:04:00

UTF-8 形式
$str = "289dfh 第一試合 jdfh388 第二試合 jfsj83 第三試合 sjfsui"
マッチ 1) 289dfh 第一試合
2) jdfh388 第 2 試合
3) jfsj83 第三試合

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

この投稿は xuzuning によって最後に投稿されました: 2013-06-09 07:05 :36 編集

$str = "289dfh第一个匹配     jdfh388第二个匹配  jfsj83第三个匹配 sjfsui";preg_match_all('/\w+[\x{4e00}-\x{9fa5}]/iu', $str, $r);print_r($r[0]);
Array (
[0 ] => 289dfh 最初の一致
[1] => jdfh388 2 番目の一致
[2] => jfsj83 3 番目の一致 )


パンニングを使用して、漢字で始まらない境界を作成すると思います左に漢字で終わる境界線 このように書くのはどうすればよいですか?

<?php$str = "289dfh第一个匹配     jdfh388第二个匹配  jfsj83第三个匹配 sjfsui   汉字开头的不要    haha这个要";preg_match_all('/\s*(?![\x{4e00}-\x{9fa5}])\w+[\x{4e00}-\x{9fa5}]+/iu', $str, $r);print_r($r[0]);

これはあなたが言及していることですか?
シーケンスリングを無効にするだけです ~~~

ループビューを使用したいのですが、左側が漢字を境界として始まらず、右側が漢字を境界として終わっています。これを書きますか?

あなたがやっていることは範囲が大きすぎます。ホワイトリストに切り替えて、何が正しいのかを指定する必要があります。
シーケンスループを無効にするだけです~~~

最後の /iu が削除されるとエラーが報告されるのはなぜですか?

コンパイルに失敗しました: x{...} シーケンスの文字値がオフセット 8 で大きすぎます

/ iu

i は大文字小文字を無視することを意味します
u は utf8 を意味します
/iu

i は大文字小文字を無視することを意味します
u は utf8 を意味します

U を削除してエラーを表示しないのはなぜですか?

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