- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
662 :デフォルトの名無しさん[sage]:2016/02/08(月) 13:27:10.97 ID:aqsYdaVU - preg_match_allの正規表現について質問です。
全角丸括弧を含む部分が一致しないのですがなぜでしょうか? $pattern = '/(.+\n)/u'; //全角括弧がないと取り出せる(サブパターンの半角括弧のみ) //$pattern = '/((.+)\n)/u'; //全角丸括弧に限定すると取り出せない(外側は半角、内側が全角) preg_match_all($pattern, $row['text'], $matches);
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
663 :662[sage]:2016/02/08(月) 13:29:08.45 ID:aqsYdaVU - なお、実際にはパターン内の改行¥nの後にもサブパターンがあります。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
665 :662[sage]:2016/02/08(月) 15:38:02.35 ID:aqsYdaVU - >>664
はい。一致します。 簡易例はこんな感じなんですが。 $pattern = '/((.+\n)?(.*[0-9]{1,3}円/u'; //開く括弧をつけただけだと上手くいく $pattern = '/((.+)\n)?(.*[0-9]{1,3}円)/u'; //閉じ括弧をつけるとなぜか上手くいかない レコード --------------------- (青果) きゅうり100円 以下きゅうりの説明・・・ とまと200円 以下とまとの説明・・・ --------------------- ---内のDBレコードから、説明を抜いた下記を抜き出したいのです。 (青果) きゅうり100円 とまと200円
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
673 :662[sage]:2016/02/08(月) 16:17:20.83 ID:aqsYdaVU - ¥nは¥s(空白文字)に変更しました。
設計はたしかに悪いです。後悔先に立たず。 全角の開く括弧だけを入れた場合には上手くいく感じなのでこれで妥協します。 ありがとうございました。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
675 :662[sage]:2016/02/08(月) 17:23:26.26 ID:aqsYdaVU - >>674
ありがとうございます! おかげさまで上手くいきました!! 改行文字が原因だったんだと理解できました。 '/((.+)(?:\r|\n|\r\n))?(.*[0-9]{1,3}円)/u';
|