您的位置首页百科词条

正则表达式替换问题

正则表达式替换问题

的有关信息介绍如下:

正则表达式替换问题

不知道你是用什么语液兆言来写. 不过不管是什么语言, 只要其支持正猜埋吵则表达式的反向引用特性, 要实现你说的很简单.以php为例,正则这样写:"/(www\.)(\w+)(\.com)/"。该正则把你要查找的内容分成了3个子表达式。接下来要做的就是替换第2个子表达式。设你要把中间的内容替换为“AABBCCDDEEFF”,在$string中进行查找替换,可如下实现:preg_replace("/(www\.)(\w+)(\.com)/","\${1}AABBCCDDEEFF\$3", $string);各种语言实现的方式可能不同,但是基本原理是相同的。我必须更正一下我的回答。先前没有经过测试。当我仔细研究过正则表达式后,有了更清晰的认识。以下是我用javascript实现的: var str = "\http://www.aaa.com\n \http://www.bbb.cn\n \http://www.ccc.org\"; var reg = /(http:\/\/www\.)((?!google)\w+)(\.(com|cn|org))/g; str = str.replace(reg,RegExp.leftContext+'$1google$3'+RegExp.rightContext);替换后的字符串是:"\http://www.google.com\n \http://www.google.cn\n \http://www.google.org\";以下是更优雅的实现:str = str.replace(reg,refunc);function refunc(a,b,c,d){ var a; return b+'google'+d;}实践证明它可以找出所有匹配的子串并对子串的子串进行替换。根据你的需要你可以重写正则表达式。相信别的语言也提供了类似的功能穗侍。