PHPで、正規表現で文字列を分割する方法がわかりません。
やりたいことは、
1|ねこ|2|こあら|3|りす
という文字列を、
1|ねこ 2|こあら 3|りす
というように、直前の文字が数字でない|で区切りたいです。
区切るための関数は、mb_splitを考えています。
http://php.benscom.com/manual/ja/function.mb-spl …
調べていて、以下のページに書かれている話が近いのかなと思うのですが、
そこで述べられている正規表現の仕組みがよく分からないでいます。
http://okwave.jp/qa1849763.html
ご教示よろしくお願いします。
No.1ベストアンサー
- 回答日時:
あまり正規表現得意というわけでもありませんが・・。
(?<!\d)\|
でいかがでしょうか。
----------------
<?php
print_r(mb_split('(?<!\d)\|', "1|ねこ|2|こあら|3|りす"));
?>
----------------
> 調べていて、以下のページに書かれている話が
> 近いのかなと思うのですが、
> そこで述べられている正規表現の仕組みがよく分からないでいます。
正規表現の"後読み(lookbehind)"の否定を使っています。
参考URLを参照ください(lookbehindでページ内を検索してみてください)。
下に解説を書いてみます。
lookbehindの否定
(?<!foo)bar
は、"foo" 以外の後にある "bar" の存在を見つけるもの
この場合、
数字以外の後にある|を見つけたいので、
数字 → \d
| → \|
ということで、"foo" に "\d" を、 "bar" に "\|" を当てはめて
(?<!\d)\|
となりました。
参考URL:http://www.php.net/manual/ja/reference.pcre.patt …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Excel(エクセル) 名前と日付が一致する箇所にフラグを立てる関数が知りたいです 4 2022/08/11 02:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらはただの直列処理ですか?
-
PHPでこのコード自体に意味は無...
-
PHP一覧表示した項目にリンクを...
-
PHPSpreadsheetを使って関数を...
-
アップロード画像数でCSSを分け...
-
ワードプレスサイト PHP8.0.25...
-
入力フォームの空白や改行を制...
-
オススメのプログラミングスク...
-
htmlのエラーについて(デバッグ)
-
SFTPなどは使わないホームペー...
-
php 完了画面の送信メールのコ...
-
phpでPEAR::DBを使っているので...
-
index.phpって何ですか? 具体...
-
PHP8を使うと、大量のWarningが...
-
掲示板のセキュリティについて...
-
メールフォームのタイトルが文...
-
php 入力画面から確認表示画面...
-
ワードプレスプラグイン MW WP ...
-
phpのメールフォームの完了画面...
-
PHPとHTML+Xamppの掲示板で画像...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
重複を防ぐ記述について教えて...
-
index.phpって何ですか? 具体...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
php 確認表示画面で値をSESSION...
-
PHPでユーザー情報を入力して簡...
-
ワードプレスサイト PHP8.0.25...
-
php 完了画面の送信メールのコ...
-
SFTPなどは使わないホームペー...
-
PHPのセッション有効期限について
-
csvファイルについて教えて下さ...
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで訪問回数を表示するカウン...
-
ファイルアップロードに関して...
-
掲示板を作成しておりアップロ...
-
Q&Aサイトを作成していてURLの...
おすすめ情報