
以下の文字列がフォームからPOSTされたとします。
-------------------
1
2
3
4
5
-------------------
ポストされた文字列が$strに格納されているとして、
以下を実行しました。
-------------------
print preg_match_all("[\n\r]",$str, $dummy);
print preg_match_all("[\r\n]",$str, $dummy);
print preg_match_all("[\r]",$str, $dummy);
print preg_match_all("[\n]",$str, $dummy);
-------------------
結果はこうなりました。
-------------------
6
6
10
10
-------------------
どうやらマッチパターンが"[\n\r]"と"[\r\n]"の場合は空白行の数を、
"[\r]"と"[\n]"の場合は純粋に改行数を返しているようです。
どうしてこのような差が出るのでしょうか?
文字コードはEUC、改行コードはLFで統一していますが関係ありますか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
送信されたデータは
1\r\n2\r\n\r\n3\r\n\r\n\r\n4\r\n\r\n\r\n\r\n5
となってると推測。
1\r\n2\r[\n\r]\n3\r[\n\r][\n\r]\n4\r[\n\r][\n\r][\n\r]\n5
6個
1[\r\n]2[\r\n][\r\n]3[\r\n][\r\n][\r\n]4[\r\n][\r\n][\r\n][\r\n]5
10個
1[\r]\n2[\r]\n[\r]\n3[\r]\n[\r]\n[\r]\n4[\r]\n[\r]\n[\r]\n[\r]\n5
10個
1\r[\n]2\r[\n]\r[\n]3\r[\n]\r[\n]\r[\n]4\r[\n]\r[\n]\r[\n]\r[\n]5
10個
となります。
逆にpreg_match_all("[\r\n]", $str, $dummy)こいつが6を返しているのが不思議でなりません。
この回答への補足
なんとなく理解できました。
ソースの改行コードがLFというのは関係ないんですね。
POSTする文字列はFORMのTEXTAREAからを想定しているのですが、
Windowsなら\r\nが、Macなら\rが、LINUXなら\nが送られてくるという認識で会っていますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- その他(プログラミング・Web制作) awkの正規表現での最左最短マッチング 3 2022/07/01 00:10
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現でアンカータグを判別
-
Excelで数字のみを2倍3倍にする...
-
正規表現で切り出せません。 <...
-
VBAを使ってHTMLソースから特定...
-
preg_matchでエラーが出ます。
-
VBAのコマンドボタンの文字列の...
-
文字の入力で横バー上段、中断...
-
ファイルから読み取った改行文...
-
ソースコードの1行が長いとき...
-
awkで改行を除いて文字列を抜き...
-
Excel VBS、ADODB.Streamで改行
-
正規表現
-
phpとhtml間のデータ送信時「テ...
-
エスケープ文字の復帰(¥r)と...
-
エディットボックスで改行
-
メッセージボックスで1025文字...
-
改行を読み飛ばす
-
mcryptで英数字(12未満)のみに...
-
最終行の改行について
-
C++のctime関数復帰値の改行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで<a>タグ内からURLと文字を...
-
VBAを使ってHTMLソースから特定...
-
preg_matchでエラーが出ます。
-
PHPで変数から1行目だけを取得...
-
、"(ダブルクォーテーション)...
-
正規表現で「0」のみ抽出
-
電話番号のチェック ハイフン...
-
Smartyで部分一致
-
正規表現でシングルクォーテー...
-
正規表現パターンの記入方法に...
-
preg_matchの正規表現で
-
phpでhtmlソースを解析し、文字...
-
PHPで あるフォルダ内の、特定...
-
PHPメールフォーム URLと半角...
-
正規表現 画像リンクのaltの取得
-
phpで文字列に"や'などが含まれ...
-
正規表現で切り出せません。 <...
-
「半角数字」と「+」を許可する...
-
C#でのワイルドカードを使った...
-
正規表現preg_match('#^(?:[a-z
おすすめ情報