例如,我匹配奇數個「a」。 所以「helloaaa」應該匹配,而「helloaaaa」不應該匹配。如何僅在匹配行末使用grep匹配奇數個字符
我也在bash上試過「(aa)* a $」,有和沒有-E選項。
例如,我匹配奇數個「a」。 所以「helloaaa」應該匹配,而「helloaaaa」不應該匹配。如何僅在匹配行末使用grep匹配奇數個字符
我也在bash上試過「(aa)* a $」,有和沒有-E選項。
您的問題是helloaaaa
因爲最後三個a
S的比賽:
helloaaaa
===
爲了避免這種情況,你需要確保前一個字符不是a
:
grep -E '[^a](aa)*a$' filename
這裏我假設這條線不完全是a
s。如果整行可以是a
s,那麼你可以使用這個正則表達式代替:
grep -E '(^|[^a])(aa)*a$' filename
不適用於我。這與你一起工作嗎? – 2011-04-11 14:14:01
是的,它適用於我測試的所有示例。你能提供一個它不起作用的例子,你看到這個例子和你期望看到什麼? – 2011-04-11 14:19:26
我確實嘗試過這種表達方式。問題是我使用雙引號而不是單引號。感謝您及時的回覆。 – 2011-04-11 14:30:20
那麼你的問題是什麼?你忘了實際上問一個問題... – 2011-04-11 14:10:14
我需要一個正則表達式,它將匹配在行尾具有奇數個a的字符串。 – 2011-04-11 14:12:01