我正在嘗試使用 RegEx 搜索和替換我的代碼中的一些字串,如下所示:
用 self.indices['word'] 替換 self.word
因此,例如,替換:
self.example
和
self.indices['example']
但它應該適用于所有單詞,而不僅僅是“示例”。因此,為此所需的 RegEx 可能不需要其中的實際單詞。它實際上應該只替換除單詞本身之外的所有內容。
我嘗試的是以下內容:
self.(.*?)
它適用于搜索匹配“self”的所有字串。但是當我想改變它時,我失去了像 'example' 這樣的詞,所以我不能把它改成 self.indices['example']。
uj5u.com熱心網友回復:
您需要做的是使用捕獲組進行替換。根據使用的語言,某些語法可能略有不同,但通常您會想要這樣的東西:
self\.([^\s] )
用。。。來代替:
self.indices['\1']
https://regex101.com/r/R3xFZB/1
我們正在使用 parans 來捕獲之后的內容,self.
并在替換中將捕獲的資料放入\1
第一個(在本例中)唯一捕獲的組。對于您可能需要的某些語言$1
或\\1
替換變數。
與大多數正則運算式一樣,這可以使用環視等許多不同的方式來完成,但我認為對于新手來說,這很容易閱讀、理解和維護。@wnull 發表的評論有一個更合適的正則運算式,利用了后面的外觀,也應該可以解決問題:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535556.html
標籤:正则表达式
上一篇:正則運算式查找一些特殊的字符匹配
下一篇:匹配從“>”到最后一個點的字串