簡體   English   中英

使用命令sed replace變量和正則表達式錯誤

[英]Using command sed replace variable with regular expression error

當我學習有關sed的命令時,我發現了我無法解決的問題。我要處理的txt如下:

myBook:test yetongxue$ cat test.txt 
    def IsNonce_strSet(self):
        """
        判斷隨機字符串是否存在
        @return true 或 false
        """
        return self._values.has_key('nonce_str')

這是我的命令和結果:

myBook:test yetongxue$ sed "s/return self._values.has_key\(\)/mark1 \1 mark2/g" test.txt 
    def IsNonce_strSet(self):
        """
        判斷隨機字符串是否存在
        @return true 或 false
        """
        mark1  mark2('nonce_str')

我對mark2的位置感到困惑,該位置應該在('nonce_str')之后。 像這樣:

mark1('nonce_str')mark2

有人可以解釋嗎? 非常感謝!

而且,我該如何對正則表達式加白,以便僅將字符串匹配nonce_str 我的命令是:

sed“ s / return self._values.has_key('()')/ mark1 \\ 1 mark2 / g” test.txt

但這不起作用。

正則表達式\\(\\)匹配並捕獲sed的空字符串。

顯然,您希望捕獲一組文字括號以及它們之間的文字?

sed ´s/return self\._values\.has_key\(([^()]*)\)/mark1 \1 mark2/'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM