원문은 다음과 같이 단순화되었습니다(여러 테이블 생성 문, 일부 테이블에는 동일한 필드가 있음).
으아악테이블에 field2
필드가 있는 테이블 생성 문을 선택해야 합니다. 즉, 다음 텍스트를 선택하세요
규칙적인 규칙CREATE_.{-}F_class_type_.{-}ENGINE
을 생각했는데, 분명히 뭔가 문제가 있는 것 같습니다.
선택한 텍스트에 CREATE
하나만 있도록 제한을 추가하여 선택한 텍스트가 올바르도록 하는 방법입니다. 감사해요.
직접 확인해 보세요. 부정적인 시선을 사용하세요.
일반 규칙을 다시 확인한 결과 부정적인 탐색을 사용하면 이 문제를 해결할 수 있다는 것을 알았습니다.
먼저 올바른 정규 표현식을 붙여넣으세요:
vCREATE(_.(CREATE)@!){-}field2_.{-}ENGINE.*
vCREATE(_.(CREATE)@!){-}field2_.{-}ENGINE.*
解释一下,也方便以后自己查看
v
:任何元字符都不用加反斜杠_.
:包括换行符的所有字符(CREATE)@!
:顺序否定环视(_.(CREATE)@!){-}
:非贪婪匹配任意字符,并且匹配出的结果中不含有CREATE
字符串使用否定环视后就能保证匹配出的结果只有一个
설명하면 나중에 확인하는 것도 편리합니다.🎜CREATE
v
: 모든 메타 문자에는 백슬래시가 필요하지 않습니다.🎜_.
: 줄바꿈을 포함한 모든 문자🎜( CREATE)@!
: 순차적 부정 탐색🎜(_.(CREATE)@!){-}
: 모든 문자에 대한 욕심 없는 일치, 일치된 결과에는 다음이 포함되지 않습니다.생성
문자열🎜 🎜부정 탐색을 사용하면 일치하는 결과에 하나의CREATE
문자열만 포함되도록 할 수 있습니다. 즉, 일치하는 결과에 여러 개의 테이블 생성 문이 포함되지 않습니다🎜또 다른 아이디어:
宏
应该也可以:h {
99@a
中的99
可以通过%/field2//n
를 사용하여무심코 하나 써서 숭고하게 시험에 합격했어요. 참고: