您的位置:首页 > 其它

Replace Matches with Replacements Generated in Code (用函数作为替换体来替换匹配)

2014-05-28 10:33 459 查看
需求:

将1 and 2 and 3变成2 and 4 and 6 (倍数关系)

方法:

Python

def computereplacement(matchobj):

return str(int(matchobj.group()) * 2)

import re

subject = '1 and 2 and 3'

regobj = re.compile(r"\d+")

result = regobj.sub(computereplacement, subject)

print result

Tcl:

set pos 0

set subject "1 and 2 and 3"

while {[regexp -indices -start $pos -linestop {\d+} $subject offsets]==1} {

set pos [expr {1+[lindex $offsets 1]}]

set start [lindex $offsets 0]

set end [lindex $offsets 1]

set element [string range $subject [lindex $offsets 0] [lindex $offsets 1]]

set subject [string replace $subject $start $end [expr $element * 2]]

}

puts "subject:$subject"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: