3

\s文字列内の空白に一致するために使用されるパターンであることは知っています。さて、私の問題は、文字列の先頭または末尾にある空白をチェックするための正確な正規表現パターンは何ですか?

したがって、文字列「hello world」がある場合、空白が先頭にあるため、 が返されtrueます。文字列が「 hello world 」の場合、それも返されtrueます。空白は文字列の最初と最後にあります。

空白を削除する必要はありませんが、データベースから取得したデータの先頭または末尾に空白があるかどうかを確認する必要があるだけです。

これは私の SQL クエリですが、実際には機能しません。これは、末尾に空白があるデータのみを取得します。

select * from `data_table`
where `data_content` regexp '[ \f\t\v]$';

最後に空白があるレコードは 7 つしかないため、上記のクエリでは 7 つの結果が得られます。文字列の先頭に空白がある 3 つのレコードを取得する必要があります。

このSQLクエリを実行してみました:

select * from `data_table`
where `data_content` regexp '^\s' || `data_content` regexp'\s$';

87件の結果が得られます。PHPMYADMIN を使用して結果を 1 つずつ調べたところ、得られた結果は空白のないデータでした。

4

2 に答える 2

5

\s空白に使用すると、問題が発生しました。[[:blank:]]そのため、代わりに使用しましたが、これはうまく機能します:

select data_content as     'leading_or_trailing'
from   data_table
where  data_content regexp '^[[:blank:]]|[[:blank:]]$';

select data_content as     'leading'
from   data_table
where  data_content regexp '^[[:blank:]]';

select data_content as     'trailing'
from   data_table
where  data_content regexp '[[:blank:]]$';
于 2012-08-31T11:40:09.120 に答える