举例来说,如果我有$asd['word_123']
我想用来替换$this->line('word_123')
维持“word_123”。 我怎么能这样做?
通过使用这样的:
%s/asd\[\'.*\'\]/this->line('.*')/g
我将不能够保持措辞之间。 请赐教。
举例来说,如果我有$asd['word_123']
我想用来替换$this->line('word_123')
维持“word_123”。 我怎么能这样做?
通过使用这样的:
%s/asd\[\'.*\'\]/this->line('.*')/g
我将不能够保持措辞之间。 请赐教。
使用正则表达式,你可以这样做:%s/\$asd\['\([^']*\)'\]/$this->line('\1')/g
%s
-在整个文件替代
\$asd\['
-匹配“$ ASD ['”。 注意$
和[
需要进行转义,因为这些在正则表达式的特殊含义。
\([^']*\)
-的\( \)
可以用来选择什么所谓的‘原子’,让您可以在更换使用。 的[^']
是指任何不是一个'
,和*
表示匹配0或更多的人。
'\]
-完成我们的比赛。
$this->line('\1')
-替换我们想要的东西,而\1
替换我们从之前原子相匹配。
g
-对每行多个匹配做到这一点。
相反,正则表达式,你也可以使用宏。 例如,
qq/\$asd<Enter>ct'$this->line(<Esc>f]r)q
然后@q
多次,因为你需要。 您还可以@@
你用过之后@q
一次,或者您可以80@q
,如果你想使用它的80倍。
在某些情况下,使用:norm
可能是最好的选择。 举例来说,如果你有简短的代码块和你匹配一个独特的性格和位置。 如果你知道“$”只出现在“$ ASD”为一个特定的代码块,你可以直观地选择它,
:norm $T$ct'this->line(<C-v><Esc>f]r)<Enter>
有关使用话语:规范更有效,读:help :norm
和这个reddit的职位 。
尝试使用
:%s/\$asd\[\'\([^\']\+\)\'\]/$this->line('\1')/g