次の MySQL クエリを実行しようとすると、
SELECT text FROM `articles` WHERE content REGEXP '.*<img.*?src=\"http://www' ORDER BY date DESC
エラー: #1139 - 正規表現からエラー「繰り返し演算子のオペランドが無効です」を受け取りました。 Notepad で正規表現が正しく機能しているにもかかわらず、MySQL はそれを拒否します。
MySQL 正規表現エンジンは、疑問符のサポートがない POSIX 1003.2 に準拠しています。 (?) 量指定子 ( および ) の非貪欲な修飾子として。したがって、を採用することはできないのですか?そして ?
この問題を解決するには、意図した目的には十分に対応できる、Greedy バージョンの量指定子を使用します。それにもかかわらず、
<img>
のような要素の望ましくない一致を防ぐために、次のように否定文字クラスを組み込みます。
'<img[^>]*src="http://www'
" 文字はエスケープする必要がなく、.* であることに注意してください。先頭は暗黙的です。
以上がMySQL REGEXP クエリが「繰り返し演算子のオペランドが無効」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。