
No.3ベストアンサー
- 回答日時:
pregで厳密に行う場合はu修飾子をつけてください
<?PHP
mb_internal_encoding("UTF8");
$abc="a、b、cなど。";
$aiu="あ、い、うなど。";
$pattern="/(^[^な]+).+/u";
$replacement="$1";
print preg_replace($pattern,$replacement,$abc)."<br>";
print preg_replace($pattern,$replacement,$aiu)."<br>";
?>
No.2
- 回答日時:
ereg系の関数は戻り読みができなかったかもしれません
preg_replaceではどうでしょう?
(日本語処理を正確にするにはUTF8しばりになりますが)
<?PHP
$pattern="/a(?!i)|(?<!a)i|[^ai]/";
$replacement="_";
$array=array("xaiy","aau","aiu","ai","a","aiueoaiaioioia");
foreach($array as $val){
print $val."→".preg_replace($pattern,$replacement,$val)."<br>";
}
ご回答ありがとうございます。
preg_replaceは使ったことがないので、勉強してやってみたいと思います。
PHPマニュアルのpreg_replaceのページを読みましたが、preg系正規表現の仕組みがあまり理解できませんでした。
自分でも以下のコードを書いてみたのですが、なぜeregとpreg、"abc"と"あいう"で処理が異なるのか理解できておりません。
$abc="a、b、cなど。";
$aiu="あ、い、うなど。";
$abc_ereg=mb_ereg_replace('(^[^な]+).+','\\1',$abc);
$abc_preg=preg_replace('/(^[^な]+).+/','${1}',$abc);
$aiu_ereg=mb_ereg_replace('(^[^な]+).+','\\1',$aiu);
$aiu_preg=preg_replace('/(^[^な]+).+/','${1}',$aiu);
$abc_eregの結果は、a、b、c
$abc_pregの結果は、a
$aiu_eregの結果は、あ、い、う
$aiu_pregの結果は、あ、い、うなど。
preg系正規表現の参考サイトで、プログラミング初修者にも分かり易いものがあれば是非ご教示ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
htmlspecialchars関数でエスケ...
-
c# string型の変数に、ダブルク...
-
VBAのコマンドボタンの文字列の...
-
エクセルでの漢字、カタカナ、...
-
メッセージボックスで1025文字...
-
ソースコードの1行が長いとき...
-
文字の入力で横バー上段、中断...
-
テキストファイルから改行コー...
-
エクセルのCOUNTIFが正しくカウ...
-
エスケープ文字の復帰(¥r)と...
-
VBAでCSVをExcelに取り込む時に...
-
jsp 改行コードで改行させて表...
-
Excel関数「COUNTIF」で”文字”...
-
C# DataGridViewのセルを改行禁...
-
ファイルから読み取った改行文...
-
C++で空Enterの入力を判...
-
VB.net テキストボックス半角文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
文字列の置換をCStringで(C++)
-
preg_replace()でマッチ文字列...
-
文字列の結合について
-
○分から○時間○分に変換
-
追伸します。
-
phpで文字列の一部を基準にして...
-
PHPで「,」を「, 」へ置換した...
-
正規表現。指定文字列を抜き出...
-
デザインとテキストを分離しま...
-
php 正規表現で、\\マークを取...
-
mcryptで英数字(12未満)のみに...
-
文字列関数について
-
print<<<EOM~EOM; の中のデー...
-
冗長コードのfunction化と汎用化
-
DOCOMOの機種判別でみたことな...
-
入力文字に\\マークが入ってい...
-
PHPの¥
-
(から)までの文字列を削除したい
-
2バイトローマ数字小文字につ...
おすすめ情報