Teks asal dipermudahkan seperti berikut (beberapa pernyataan penciptaan jadual, sesetengah jadual mempunyai medan yang sama):
CREATE TABLE `test1` (
`field1` int,
) ENGINE=InnoDB
CREATE TABLE `test2` (
`field1` int,
) ENGINE=InnoDB
CREATE TABLE `test3` (
`field2` int,
) ENGINE=InnoDB
CREATE TABLE `test4` (
`field3` int,
) ENGINE=InnoDB
CREATE TABLE `test5` (
`field2` int,
) ENGINE=InnoDB
Saya perlu memilih pernyataan penciptaan jadual yang mempunyai field2
medan dalam jadual, iaitu pilih teks berikut
CREATE TABLE `test3` (
`field2` int,
) ENGINE=InnoDB
CREATE TABLE `test5` (
`field2` int,
) ENGINE=InnoDB
Saya memikirkan peraturan biasaCREATE_.{-}F_class_type_.{-}ENGINE
, tetapi jelas ada yang tidak kena dengan ini.
Bagaimana untuk menambah sekatan supaya hanya ada satu CREATE
dalam teks yang dipilih, supaya teks yang dipilih adalah betul. terima kasih.
Semak sendiri, cuma gunakan pandangan negatif.
Saya menyemak peraturan biasa sekali lagi dan mendapati bahawa menggunakan tinjauan negatif boleh menyelesaikan masalah ini.
Tampalkan ungkapan biasa yang betul dahulu:
vCREATE(_.(CREATE)@!){-}field2_.{-}ENGINE.*
vCREATE(_.(CREATE)@!){-}field2_.{-}ENGINE.*
解释一下,也方便以后自己查看
v
:任何元字符都不用加反斜杠_.
:包括换行符的所有字符(CREATE)@!
:顺序否定环视(_.(CREATE)@!){-}
:非贪婪匹配任意字符,并且匹配出的结果中不含有CREATE
字符串使用否定环视后就能保证匹配出的结果只有一个
Terangkan, ia juga mudah untuk anda menyemak kemudian🎜CREATE
(_.(CREATE)@!){-}
: Tidak tamak padanan mana-mana aksara dan hasil yang dipadankan tidak mengandungiBUAT
String🎜 🎜Menggunakan tinjauan negatif boleh memastikan bahawa hasil padanan hanya akan mempunyai satu rentetanCREATE
, iaitu, hasil padanan tidak akan mempunyai berbilang kenyataan penciptaan jadual🎜Idea lain: gunakan
宏
应该也可以:h {
99@a
中的99
可以通过%/field2//n
untuk mendapatkanSaya menulis satu secara santai dan lulus ujian dengan cemerlang. Untuk rujukan: