加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Replace All Matches Within the Matches of Another Regex (替

发布时间:2020-12-14 01:45:29 所属栏目:百科 来源:网络整理
导读:需求: 将位于b/b之间的before替换为after eg. before bfirst before/b before bbefore before/b 变成 before bfirst after /b before b after after /b Python: import re subject = "before bfirst before/b before bbefore before/b" innerre = re.compil

需求:

将位于<b></b>之间的before替换为after

eg.

before <b>first before</b> before <b>before before</b>

变成

before <b>first after</b> before <b>after after</b>


Python:

import re

subject = "before <b>first before</b> before <b>before before</b>"

innerre = re.compile("before")

def replacewithin(matchobj):

return innerre.sub("after",matchobj.group())


result = re.sub("<b>.*</b>",replacewithin,subject)

print result


Tcl:

set subject "before <b>first before</b> before <b>before before</b>" set pos 0 while {[regexp -nocase -indices -start $pos {<b>(.*?)</b>} $subject offsets]==1} { set bOffSets $offsets set pos [expr {1+[lindex $offsets 1]}] set sTmp [string range $subject [lindex $offsets 0] [lindex $offsets 1]] set ios 0 while {[regexp -indices -start $ios -linestop {(before)} $sTmp offsets]==1} { set ios [expr {1+[lindex $offsets 1]}] set start [lindex $offsets 0] set end [lindex $offsets 1] set element [string range $sTmp [lindex $offsets 0] [lindex $offsets 1]] set sTmp [string replace $sTmp $start $end "after"] } set subject [string replace $subject [lindex $bOffSets 0] [lindex $bOffSets 1] $sTmp] } puts "subject:$subject"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读