
No.4
- 回答日時:
見た感じ「数字」を消したいようにみえますが、「英数字」を消したいのでしょうか?
まし数字だけなら\dでマッチさせます
複数行あっても最終行だけ処理するなら
$pattern="/\d+$/u";
複数行の各行末を処理したいならm修飾子
$pattern="/\d+$/mu";
でよくないですか?
<?PHP
$moji="あいうえ215おかき15\naiueo111kakiku222";
$pattern="/\d+$/mu";
print preg_replace($pattern,"",$moji)."<br>";
$pattern="/\d+$/u";
print preg_replace($pattern,"",$moji)."<br>";
?>
No.2
- 回答日時:
UTF-8(推奨)ならば
$moji = preg_replace('/\w++\z/u', '', $moji);
Shift_JISであれば
mb_regex_encoding('SJIS-WIN');
$moji = mb_ereg_replace('\w++\z', '', $moji);
EUC-JPであれば
mb_regex_encoding('EUC-JP');
$moji = mb_ereg_replace('\w++\z', '', $moji);
・ 「\w」は「[0-9a-zA-Z_]」と全く同じ意味です。
・ 「$」は末尾または末尾手前の改行にマッチしますが、「\z」は末尾にしかマッチしません(今回はどちらでもよさそうですが)
・ 「+」よりも「++」とした方が動作が速くなります。(下で詳しく述べます)
あいうえ123おかき45
この例において、
● 「\w+」のとき
1. 「1」にマッチし、次の文字を調べる。
2. 「12」にマッチし、次の文字を調べる。
3. 「123」にマッチし、ここで「\w+」のマッチはいったん終了する。
4. 「123」のときこの場所は「\z」にはマッチしないので、バックトラックを行う。
5. 「12」のときこの場所は「\z」にはマッチしないので、バックトラックを行う。
6. 「1」のときこの場所は「\z」にはマッチしない。よってここはマッチ失敗とする。
7. 「4」にマッチし、次の文字を調べる。
8. 「45」にマッチし、ここで「\w+」のマッチはいったん終了する。
9. 「45」のときこの場所は「\z」にはマッチする。よってここはマッチ成功とする。
● 「\w++」のとき
1. 「1」にマッチし、次の文字を調べる。
2. 「12」にマッチし、次の文字を調べる。
3. 「123」にマッチし、ここで「\w++」のマッチはいったん終了する。
4. 「123」のときこの場所は「\z」にはマッチしない。「++」を用いたのでバックトラックを行わず、即座にマッチ失敗とする。
5. 「4」にマッチし、次の文字を調べる。
6. 「45」にマッチし、ここで「\w++」のマッチはいったん終了する。
7. 「45」のときこの場所は「\z」にはマッチする。よってここはマッチ成功とする。
ちょっとした正規表現でもこうやって無駄を潰す配慮はしたほうがいいと思います。
ちなみに今回は実践していませんが、普段なら私は
$moji = preg_replace('/\\w++\\z/u', '', $moji);
$moji = mb_ereg_replace('\\w++\\z', '', $moji);
$moji = mb_ereg_replace('\\w++\\z', '', $moji);
というように全ての「\」をエスケープして書きます。
その理由について↓
http://detail.chiebukuro.yahoo.co.jp/qa/question …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
SplFileObject を利用したとき...
-
composerをインストールしたい...
-
php でqiitaのサイトにあったフ...
-
【初心者】XAMPPのapacheの(恐...
-
PHPの勉強してます。 配列のと...
-
複数のパソコンの中の1つのパソ...
-
phpに関わる所での、form actio...
-
PHP8を使うと、大量のWarningが...
-
Q&Aサイトを作成していてURLの...
-
PHPで画像の渡しが上手く行きま...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
[php初心者]サイトを見てデータ...
-
入力フォームの空白や改行を制...
-
reuterの記事をbeautiful.soup....
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
composerをインストールしたい...
-
BASIC認証のフォームをデザイン...
-
SplFileObject を利用したとき...
-
phpでcookieがうまく保存されない
-
PHPのセッション有効期限について
-
PHPで画像の渡しが上手く行きま...
-
PHP8を使うと、大量のWarningが...
-
フォームで戻った際に入力済み...
-
Q&Aサイトを作成していてURLの...
-
PHPを使って、別サイトの一部を...
-
$_SESSIONに渡した後はそのまま...
-
reuterの記事をbeautiful.soup....
-
PHPSpreadsheetを使って関数を...
-
PHPのエラーの解消法について教...
-
ファイルの遷移がうまく行われ...
-
PostgreSQLからCSV形式でエクス...
-
php エラー
-
HTML PHP ラジオボタンのイベント
おすすめ情報