MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで改行を含むテキストを検索する方法【REGEXP活用】

MySQLで改行コードを含むテキストを検索したい場合は、REGEXP演算子を使用します。正規表現パターンとして「\n」を指定することで、改行を含むレコードを簡単に抽出できます。

それでは、実際の手順を見ていきましょう。

1. サンプルテーブルを作成する

まずは検証用のテーブルを作成します。

mysql> create table DemoTable
(
    Name varchar(100)
);
Query OK, 0 rows affected (1.61 sec)

2. テストデータを挿入する

INSERTコマンドでレコードを追加します。ここでは「John\nSmith」や「David\nMiller」のように、文字列の中に改行コード(\n)を含めたデータを登録しているのがポイントです。

mysql> insert into DemoTable values('John\nSmith');
Query OK, 1 row affected (0.73 sec)
mysql> insert into DemoTable values('John Doe');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('David\nMiller');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values('Carol Taylor');
Query OK, 1 row affected (0.27 sec)

3. テーブルの内容を確認する

SELECT文ですべてのレコードを表示してみます。

mysql> select *from DemoTable;

実行すると、次のような結果が得られます。

+--------------+
| Name         |
+--------------+
| John Smith   |
| John Doe     |
| David Miller |
| Carol Taylor |
+--------------+
4 rows in set (0.00 sec)

4. 改行を含むレコードを検索するクエリ

以下のクエリを実行することで、改行を含むテキストを持つレコードだけを抽出できます。

mysql> select *from DemoTable where Name regexp "\n";

実行結果はこちらです。

+--------------+
| Name         |
+--------------+
| John Smith   |
| David Miller |
+--------------+
2 rows in set (0.41 sec)

このように、改行コードを含んでいた「John Smith」と「David Miller」の2件だけが取得できました。

補足ポイント

  • regexp "\n":REGEXP演算子に「\n」を渡すことで、改行コードを含む文字列にマッチします。
  • LIKE句でも「LIKE '%\n%'」のように検索可能ですが、REGEXPの方がより柔軟なパターンマッチングに対応できます。
  • Windows環境で生成されたデータの場合、改行が「\r\n」(CRLF)になっていることがあります。その場合は「regexp '\r\n'」を試してみてください。
  1. C++でテキストの両端揃え(ジャスティフィケーション)を実装する方法

    単語の配列と最大幅 maxWidth が与えられたとき、各行がちょうど maxWidth 文字になるようにテキストを整形し、両端を揃える(フル・ジャスティファイ)ことを考えます。単語は貪欲法(グリーディーなアプローチ)で詰め込みます。つまり、1行にできるだけ多くの単語を収め、必要に応じて余分なスペース「 」を補って、各行の文字数をちょうど maxWidth に合わせます。単語間の余分なスペースは、できるだけ均等に分配します。行内のスペース数が単語間で均等に割り切れない場合は、左側の空きスロットに右側よりも多くのスペースを割り当てます。また、テキストの最終行は左揃えとし、単語間に余分な

  2. XPathで (空白)を含むテキストを検索する方法|normalize-space関数の使い方

    XPathで や空白を含むテキストを検索する方法Web自動テストでは、 (ノーブレークスペース)や余分な空白を含むテキストを持つ要素を、XPathロケーターで特定したいケースがあります。まずは、前後に空白が含まれているWeb要素のHTMLコードを確認してみましょう。下の画像の例では、strongタグで囲まれた「JAVA BASICS」というテキストに空白が含まれていることが、HTMLコードから読み取れます。要素のテキストや属性値に空白が含まれている場合、そのような要素に対するXPathを作成するにはnormalize-space関数を使用します。この関数は、文字列から前後(