だから私は次の正規表現を持っています:
(?<!\.)\b([\w\@\-]+) *\b(IN|NOT IN|LIKE|NOT LIKE|BETWEEN|REGEXP|NOT|IS|XOR)+\b *
これは、SQLコードと一致させるのに役立ちます。
ただし、2 番目の括弧内のフレーズ (「NOT IN」や「NOT LIKE」など) には問題があるようです。
一致するか一致しない正規表現が必要です (現在の正規表現のように部分一致はありません)。
customers.id NOT IN (SELECT MAX(customers_service.customer_id))
絶対に合わせてはいけないcustomers.id NOT LIKE (SELECT MAX(customers_service.customer_id))
絶対に合わせてはいけないid NOT IN (SELECT MAX(customers_service.customer_id))
一致する必要がありますid IN (SELECT MAX(customers_service.customer_id))
一致する必要があります
チェックに RegexBuddy を使用していましたが、正規表現を使用して No. 1 と No. 2 の一致を取得しました。
また、
id NOT IN (SELECT MAX(customers_service.customer_id))
id NOT
とは対照的に、のみに一致しますid NOT IN
id NOT LIKE (SELECT MAX(customers_service.customer_id))
id NOT
とは対照的に、のみに一致しますid NOT LIKE
この正規表現を変更して、否定的な後読みの条件と、2 番目のブラケット内の正確なフレーズをキャプチャするか、まったく一致しない (部分一致しない) ようにします。
どうすればこれを行うことができますか?