3
我可以使用正則表達式連接文本到其他文本嗎?正則表達式修改文本
我有一個字符串包括:
"bird dog fish"
我想輸出:
"bird catdog fish"
我會用gsub
做到這一點?我感到困惑,因爲如果我使用gsub
匹配「狗」,我將不得不用「貓」替換「貓」,而不是隻在其前面添加「貓」。我怎樣才能添加一些文字到特定的比賽?我必須使用掃描或其他?
我可以使用正則表達式連接文本到其他文本嗎?正則表達式修改文本
我有一個字符串包括:
"bird dog fish"
我想輸出:
"bird catdog fish"
我會用gsub
做到這一點?我感到困惑,因爲如果我使用gsub
匹配「狗」,我將不得不用「貓」替換「貓」,而不是隻在其前面添加「貓」。我怎樣才能添加一些文字到特定的比賽?我必須使用掃描或其他?
做替換有什麼問題?
>>> "bird dog fish".gsub(/(dog)/, 'cat\1')
=> "bird catdog fish"
的\1
是將(dog)
捕獲組的引用。當然,(dog)
可以是任何有效的正則表達式,所以這個例子可以很容易地用於更復雜的情況。如果需要,您可以有多個捕獲組。
>>> "bird dog fish".gsub(/(dog)(.*)(sh)/, 'cat\1\3\2')
=> "bird catdogsh fi"
Ruby 1.9的推出命名捕捉組:
>>> "bird dog fish".gsub(/(?<mydog>dog)/, 'cat\kmydog')
=> "bird catdog fish"
這是紅寶石。有總是許多方法來做到這一點。更多可以在標準文檔中找到。
\ 1做什麼? – zProgrammer 2013-03-27 16:45:25
@Jack:這是一個被捕獲組的參考。 Regex中'dog'周圍的parens指定它應該被「捕獲」用於輸出。 – voithos 2013-03-27 16:46:32
啊。你能做像2或3這樣的東西嗎?如果是這樣會做什麼? – zProgrammer 2013-03-27 16:48:28