任何人都可以告訴我一個匹配行的開始或結束的正則表達式嗎?例如如果我使用sed 's/[regex]/"/g' filehere
輸出將在每行引號?我試過[\^$]
和[\^\n]
,但他們都沒有工作。我可能失去了一些東西很明顯,我是新來的這些正則表達式匹配行的開頭和結尾?
回答
嘗試:
sed -e 's/^/"/' -e 's/$/"/' file
完美的工作!感謝您的幫助:) –
不需要「g」,因爲線條的開始和結束都不會出現多次。 –
要添加引號來開始和每行的末尾很簡單:
sed 's/.*/"&"/g'
重你試圖拿出來匹配每行的開始或結束,但是,是:
sed -r 's/^|$/"/g'
它的一個ERE(ena可以通過「-r」),所以它可以與GNU sed一起使用,但不能使用較老的seds。
matthias的回答完全合適,但您也可以使用反向引用來執行此操作。如果你正在學習正則表達式,它們是一個方便的知識。
這裏,將如何使用反向引用來完成:
sed 's/\(^.*$\)/"\1"/g' file
在該正則表達式的心臟爲^.*$
,這意味着匹配線路(^
)開始包圍東西(.*
)和結束($
),這實際上意味着它將每次匹配整行。
將這個術語放在括號內創建一個反向引用,我們稍後可以引用(在替換模式中)。但是爲了讓sed意識到你的意思是創建反向引用而不是匹配文字括號,你必須用反斜槓將它們轉義。因此,我們以\(^.*$\)
作爲我們的搜索模式。
替換模式只是一個雙引號,後面跟着\1
,這是我們的反向引用(引用括起來的第一個模式匹配,因此是1)。然後添加您的最後一個雙引號,以"\1"
結束。
^。* $與。*相同,^和$是多餘的。當整個RE匹配時,您也不需要反向引用特定的匹配字符串 - 這就是&的目的。 –
表示同意,但爲了清楚起見,我把它們扔在那裏。我的回答更傾向於展示如何使用反向引用,而不是如何解決特定的場景。 – nullrevolution
這很好,但如果能夠向OP顯示他的具體問題的答案也是有用的,所以他不認爲這是做這件事的最好方法。 –
- 1. 正則表達式匹配開頭的行和特殊結束
- 2. 正則表達式\ d匹配開頭和行結束以及
- 3. 正則表達式開始用[和結尾] - 匹配的話只
- 4. 正則表達式匹配開頭和結尾處的所有內容
- 5. 正則表達式匹配Java中字符串的開頭和結尾
- 6. 正則表達式來匹配行尾
- 7. 正則表達式匹配開始從句與結尾
- 8. 以括號開頭和結尾的正則表達式
- 9. 正則表達式模式在該行的開頭不匹配
- 10. Java正則表達式,匹配段落以x開頭,以y結尾
- 11. 正則表達式匹配單詞和結尾的空白對
- 12. 正則表達式 - 以字符串開頭和結尾
- 13. 讓正則表達式匹配過去行結尾
- 14. php正則表達式 - 從字符串的開始和結尾匹配
- 15. 如何匹配正則表達式和行尾?
- 16. 正則表達式匹配不是行的開始/結束
- 17. 阿拉伯詞與以「#」結尾的正則表達式匹配?
- 18. 正則表達式ISSUE - 無法匹配以無結尾的URL
- 19. 正則表達式以匹配以Javascript結尾的文件
- 20. 正則表達式匹配以%結尾的字符串php
- 21. 正則表達式:匹配以「Id」結尾的單詞
- 22. 定義正則表達式以匹配網址的結尾
- 23. 正則表達式匹配特定函數調用的結尾
- 24. c#正則表達式來匹配字符串的結尾?
- 25. 正則表達式 - 匹配'?'後的字符串並以'#'結尾
- 26. 匹配開始和結束的正則表達式
- 27. 正則表達式匹配的開始和結束字符串
- 28. 蟒蛇正則表達式 - 字符串匹配的匹配尾
- 29. 正則表達式以「http並以/結尾」開頭?
- 30. 正則表達式匹配的錶行
請使用您的問題的所有必要標籤。正則表達式是一個廣義的術語。 – inhan