sql >> データベース >  >> RDS >> Mysql

MySQL REGEXPの単語境界[[:<:]] [[:>:]]と二重引用符

    ドキュメント を引用させてください 最初:

    ドキュメントから、問題の背後にある理由を確認できます。これは、エスケープが原因ではありません。問題は、単語の境界を一致させようとしていることです[[:<:]] 文字列の先頭で、ドキュメントからわかるように単語の境界が単語の文字と非単語の文字を分離しているため機能しませんが、あなたの場合、最初の文字は"> これは単語の文字ではないため、単語の境界はありません。最後の"についても同じことが言えます。 および[[:>:]]

    これを機能させるには、式を少し変更する必要があります:

    "[[:<:]]word[[:>:]]"
     ^^^^^^^    ^^^^^^^
    

    単語の境界が単語以外の文字"をどのように区切っているかに注目してください 単語文字からw 最初に" dから 文字列の最後にあります。

    編集: 実際の境界があるかどうかを知らずに、文字列の最初と最後で常に単語の境界を使用する場合は、次の式を使用できます。

    ([[:<:]]|^)"word"([[:>:]]|$)
    

    これは、文字列の先頭または文字列の先頭の単語境界に一致します^ 単語の境界または文字列の終わりについても同じです。照合しようとしているデータを調べて一般的なパターンを探し、正規表現が仕事に適したツールでない場合は正規表現を使用しないことを強くお勧めします。

    SQLフィドルデモ



    1. LIKEを使用してGROUP_CONCATを検索します

    2. MYSQLの結果で数値を単語に変換します!クエリの使用

    3. ユーザーがphpおよびmysql駆動のデータベースを備えたWebサイトでオンラインであるかどうかを確認するにはどうすればよいですか?

    4. 挿入を作成...Laravelでステートメントを選択