最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

我們都知道可以用正則表達式,即regex,來進行字符串的匹配,替換。

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

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

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

如何替換成:

$opt_ws_parser
$opt_client
$opt_server

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

直接出答案:

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

 其中,前面一個/   /中的正則表達式是原始字符串,這里面,

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

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

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

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

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

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

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

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

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

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

需求:

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

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

實現(xiàn):

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

在查找的時候用括號括起來的代表一部分,在替換的時候可以用$1,$2…引用。

在這里插入圖片描述

簡單例子

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

在這里插入圖片描述

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

注意:

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

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

相關(guān)文章

最新評論

青川县| 绍兴市| 哈巴河县| 洛隆县| 电白县| 特克斯县| 丰城市| 安泽县| 新蔡县| 双鸭山市| 玉溪市| 紫云| 晋江市| 龙门县| 旬阳县| 舟山市| 孝昌县| 都江堰市| 平果县| 富宁县| 咸阳市| 合肥市| 修武县| 莱西市| 株洲县| 利津县| 鄂托克前旗| 普兰店市| 罗田县| 东港市| 保山市| 磐石市| 德令哈市| 扎囊县| 宝清县| 丹棱县| 柘荣县| 西林县| 陇西县| 广州市| 罗平县|