Replace All Matches Within the Matches of Another Regex (替
需求: 将位于<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" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- objective-c – 使用MFMailComposeViewControlle
- c# – 如何代理在docker容器中运行的dotnet核心应
- Postgresql9.2 主备设置
- 使用批处理文件编辑XML
- trunk、tunnel、lacp、聚合、级联的关系及区别
- c# – 任务并行库中的BlockingCollection不会自动
- oracle 11g rac ORA-01555 快照过旧报错处理
- ruby – Rails – 本地变量与实例变量
- ruby-on-rails – Rails / Memcached – MemCach
- c# – 通过T4代码生成自动INotifyPropertyChange