PHPで文字列から改行を削除する方法【preg_replace・str_replaceの使い方】
PHPでは、文字列に含まれる改行コード(\n や \r)を削除したいケースがよくあります。たとえば、ユーザー入力を1行のテキストとして扱いたい場合や、データベースに保存する前に文字列を整形したい場合などです。
ここでは、正規表現を使う preg_replace() 関数と、単純な置換を行う str_replace() 関数の2つの方法で、文字列から改行を削除する例を紹介します。
例1:preg_replace() を使って改行を削除する
まずは、正規表現パターン ~[\r\n]+~ を使って、復帰(CR)と改行(LF)のコードをすべて除去する方法です。
<?php
$str = "Demo
text for
reference";
echo nl2br($str);
$str = preg_replace('~[\r\n]+~','', $str);
echo "\n".nl2br($str);
?>出力結果
上記のコードを実行すると、次のような出力が得られます。
Demo<br /> <br /> text for <br /> <br /> reference Demo text for reference
最初の echo では nl2br() によって改行が <br /> タグに変換されて表示されますが、preg_replace() で改行を削除した後は、「Demo text for reference」という1行の文字列になっていることがわかります。
例2:str_replace() を使って改行を削除する
次に、str_replace() 関数を使うシンプルな方法です。配列で \n と \r の両方を指定し、空文字列に置き換えます。
<?php
$str = "Demo
text";
echo nl2br($str);
$str = str_replace(array("\n", "\r"), '', $str);
echo "\n".nl2br($str);
?>出力結果
実行結果は以下のとおりです。
Demo<br /> <br /> text Demo text
両者の違いと使い分けのポイント
- preg_replace():正規表現を使えるため、連続した改行も一度にまとめて削除できます。柔軟なパターンマッチが必要な場合に便利です。
- str_replace():単純な文字列置換のみを行うため処理が高速です。改行コードの種類が明確な場合はこちらで十分です。
Windows環境では改行が「\r\n」、macOS(旧OS)では「\r」、Unix/Linuxでは「\n」と、OSによって改行コードが異なるため、確実に削除したい場合は両方のコードを対象にするのが安全です。また、全角スペースやタブなどもまとめて整形したい場合は、preg_replace('/[\r\n\t ]+/', ' ', $str) のようにパターンを拡張することもできます。
-
C#で文字列から先頭のゼロを削除する方法
文字列の先頭に余分なゼロが付いていると、数値として扱う際やデータの整形時に不便なことがあります。例えば、次のような先頭にゼロが付いた文字列を考えてみましょう。 String str = 000234; このような先頭ゼロを削除するには、C#のTrimStart()メソッドを使用します。引数として、削除したい文字(ここでは「0」)をChar型の配列で指定します。 TrimStart(new Char[] { 0 } ) TrimStart()メソッドは、指定した文字が続く限り、文字列の先頭から順番に削除していきます。そのため、「000234」のように複数のゼロが連続していても、すべての先頭ゼロ
-
Pythonで文字列から母音を削除する方法をわかりやすく解説
問題の概要文字列が与えられたとき、その中からすべての母音(a, e, i, o, u)を取り除くことを考えてみましょう。例えば、文字列が「iloveprogramming」である場合、母音を削除すると結果は「lvprgrmmng」になります。解決のための手順この問題は、以下の手順に従うことで解決できます。母音「a, e, i, o, u」を格納したリストを作成するリスト内の各母音に対して、文字列内の該当する文字を空文字列に置き換える実装例理解を深めるために、実際のコードを見てみましょう。class Solution(object): def removeVowels(self, s):