2012-07-28 51 views
0

有什麼方法可以在不使用initial(?!.*(substring))的情況下向前/向後查看子字符串?即如果您無法訪問perl,您如何搜索「initial」,然後使用正則表達式刪除任何具有「substring」後面的匹配項?超前/後面的非perl樣式正則表達式?

+0

許多其他的正則表達式的實現支持這些太(Python的,'grep的-P',... ),您沒有訪問perl的具體含義是什麼? – 2012-07-28 16:02:18

+0

我的意思是不使用Perl語法。例如,使用與egrep一起使用的正則表達式。 – bqui56 2012-07-28 16:43:24

+2

信不信由你,在perl給我們看後面,'grep foo | grep -v bar'完全正常。有些人可能使用'awk/foo/&&!/ bar /'代替。不要以使用兩個正則表達式來完成工作爲恥。 – 2012-07-28 17:50:36

回答

0

如果您搜索兩個匹配項:(1)initial和(2)initial.*substring,則基於這兩個結果,您知道是否存在此類匹配項。如果發現的第一場比賽和第二沒有,那麼你的字符串包含「初始」,沒有「」超前......

+0

是的,但問題是獲取最初作爲輸出後沒有子字符串的行。我需要egrep -v「initial。* substring」的輸出,但我只通過regex尋找解決方案。 – bqui56 2012-07-28 17:39:46

+0

@ stariz77 - 那麼?使用'grep initial file.txt | grep -v initial。* substring' – 2012-07-28 18:00:43