另一個正則表達式困境,我希望找到所有包含.cc和.h擴展名的不包含pb單詞的X文件。另一個正則表達式難題:排除所有x但不是y
Example:
Foo.cc
FooTest.cc
Bar.cc
Bar.pb.cc
Bar.pb.h
Regex result:
Foo.cc
FooTest.cc
Bar.cc
另一個正則表達式困境,我希望找到所有包含.cc和.h擴展名的不包含pb單詞的X文件。另一個正則表達式難題:排除所有x但不是y
Example:
Foo.cc
FooTest.cc
Bar.cc
Bar.pb.cc
Bar.pb.h
Regex result:
Foo.cc
FooTest.cc
Bar.cc
使用以下命令:
^((?!pb).)*\.(cc|h)$
(?!pb)
是負前瞻,將匹配後面沒有pb
任何位置。所以((?!pb).)*
將匹配任何不包含pb
的子字符串。完整的正則表達式可以描述爲匹配整個字符串,只要它以'.cc'或'.h'結尾並且擴展名前面的子字符串不包含'pb'。
注,如果你想匹配一個多行字符串,你需要將(?m)
改性劑添加到您的正則表達式,使得每行^
和$
作品,而不是整個如果你的lang不支持修飾符,則根據你使用的函數使用一個標誌。
你做了什麼? –
'grep'[。] \(cc \ | h \)'file_list | grep -v pb' :) – perreal