元のテキストは次のように簡略化されています (複数のテーブル作成ステートメント、一部のテーブルには同じフィールドがあります):
リーリーテーブル内に field2
フィールドがあるテーブル作成ステートメントを選択する必要があります。つまり、次のテキストを選択します
規則的なルールCREATE_.{-}F_class_type_.{-}ENGINE
を考えたのですが、これは明らかに何かが間違っています。
選択したテキストに CREATE
が 1 つだけ含まれるように制限を追加して、選択したテキストが正しくなるようにする方法。ありがとう。
自分でチェックしてください。周りを否定的に見てください。
ringa_lee2017-05-16 16:42:06
通常のルールを再度確認したところ、negative lookaround を使用するとこの問題を解決できることがわかりました。
最初に正しい正規表現を投稿してください: vCREATE(_.(CREATE)@!){-}field2_.{-}ENGINE.*
説明してください。後で確認するときにも便利ですv
: メタ文字にはバックスラッシュは必要ありませんv
:任何元字符都不用加反斜杠_.
:包括换行符的所有字符(CREATE)@!
:顺序否定环视(_.(CREATE)@!){-}
:非贪婪匹配任意字符,并且匹配出的结果中不含有CREATE
_.
: 改行を含むすべての文字
>( CREATE)@!
: 逐次否定検索(_.(CREATE)@!){-}
: 任意の文字の非貪欲一致、および一致結果には次の文字列が含まれないCREATE
文字列
漂亮男人2017-05-16 16:42:06
別のアイデア: 宏
:h {
を参照してください。
99@a
中的99
可以通过 %/field2//n
ゲット世界只因有你2017-05-16 16:42:06
何気なく書いたところ、見事にテストに合格しました。参考:
CREATE TABLE .*s.*`field2`[sS]*?ENGINE=InnoDB