我期待匹配正則表達式和負面字符(TCL)的組合。正則表達式找到正面和負面匹配
假設我想匹配包含'def'且不包含'hij'的行。
ab def hhh -> print
abdefxxhijzz -> no print
hij -> no print
123defhijxyz -> no print
0def123hijxyz -> no print
我曾嘗試:
{(def)(?!hij)}
{(def).*(?!hij)}
{.*(def).*(?!hij)}
{.*(def).*(?!hij).*}
所有錯誤打印 '0def123hijxyz'。
在cmd行我可以用2 x grep cmds來做到這一點。
echo 0def123hijxyz | grep def | grep -v hij
難道你們的專家能幫助一個正則表達式來實現這個目標嗎?
謝謝, Gert。
負面的正則表達式總是很棘手,因爲「缺少這個字符串」並不是真的可以「找到」的東西。你最好的選擇(我不知道怎麼寫TCL)相當於'grep -v' - 顛倒了整個過濾器,而不是正則表達式。 – IMSoP