欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

正則表達(dá)式替換字符串并保留其中部分任意內(nèi)容(最新推薦)

 更新時(shí)間:2023年04月13日 14:36:17   作者:正義之兔  
我們都知道可以用正則表達(dá)式,即regex,來(lái)進(jìn)行字符串的匹配,替換,今天小編給大家分享如何用正則表達(dá)式替換字符串并保留其中部分任意內(nèi)容,感興趣的朋友跟隨小編一起看看吧

如何用正則表達(dá)式替換字符串并保留其中部分任意內(nèi)容

我們都知道可以用正則表達(dá)式,即regex,來(lái)進(jìn)行字符串的匹配,替換。

但是如果我們想替換字符串中的一部分內(nèi)容,但是要同時(shí)保留字符串中的另一部分內(nèi)容,無(wú)論它是什么,該怎么做呢?

如在某文件中有如下內(nèi)容:

defined($opt_ws_parser)
defined($opt_client)
defined($opt_server)
...

如何替換成:

$opt_ws_parser
$opt_client
$opt_server

也就是,把defined()去掉,但是保留()里的內(nèi)容。

直接出答案:

/defined(\(\$.*\))/\1

 其中,前面一個(gè)/   /中的正則表達(dá)式是原始字符串,這里面,

  • defined(             - 原始字符串
  • \(                        -表示要組成一個(gè)group,前面需要有\(zhòng)來(lái)escape
  • \$                       -表示字符$,前面需要\來(lái)escape
  • .*                        - .表示任意字符,*表示0或任意次重復(fù)
  • \)                        - 這里是group的右括號(hào),前面需要有\(zhòng)來(lái)escape
  • )                         -原始字符串中的右括號(hào)

后面的\1是要替換成的字符串,這里表示為第一個(gè)group,也就是\(\$.*\)中的內(nèi)容。

在Linux的vim里,在底部輸入:

:%s/defined(\(\$.*\))/\1

這里%表示適用于文件每一行,s是substitute的意思。

在shell里,可以用如下sed命令:

sed -i 's/defined(\(\$.*\))/\1/g' filename

 這里最后一個(gè)g是表示替換所有符合前面正則規(guī)則的字符串。

補(bǔ)充:使用正則表達(dá)式替換(保留部分內(nèi)容不變)

正則表達(dá)式保留部分內(nèi)容替換

需求:

把trim(ABC)替換成trim(replace(ABC,char(9),'    ')

需要把ABC保留不變,替換其它的。

實(shí)現(xiàn):

trim\(([^).]*)\)      替換成    trim\(replace\($1,char\(9\),'    '\)

在查找的時(shí)候用括號(hào)括起來(lái)的代表一部分,在替換的時(shí)候可以用$1,$2…引用。

在這里插入圖片描述

簡(jiǎn)單例子

把前面三位數(shù)字替換成 =,保留其它不變。[0-9]{3} 表示三位數(shù)字,(.*) 表示其它,用括號(hào)括起便于后面替換時(shí)引用。

在這里插入圖片描述

替換完結(jié)果是 ===yiersan 除了前面 123 后面的都被括號(hào)括起來(lái)了,而且后面用 $1 引用,所以保留不變。

注意:

有些編輯器選擇使用正則表達(dá)式的時(shí)候有選擇正則表達(dá)式的類型。這里是Perl

到此這篇關(guān)于如何用正則表達(dá)式替換字符串并保留其中部分任意內(nèi)容的文章就介紹到這了,更多相關(guān)正則表達(dá)式替換字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論