请教正则表达式在替换中如何引用命名捕获?
比如字符串abbccc,匹配若干a命名为组x,若干b命名为组y。替换结果是把x组和y组交换。下面的perl语句可以实现:s/(?<x>a+)(?<y>b+)/$2$1/;...
比如字符串abbccc,匹配若干a命名为组x,若干b命名为组y。替换结果是把x组和y组交换。下面的perl语句可以实现:
s/(?<x>a+)(?<y>b+)/$2$1/;
但是我现在只能用$2, $1这样的带序号的反向引用命名捕获,试过用类似$x, $<x>,/k<x>,/k'x'这样的都没成功,编译不过(perl),请问应该怎么写呢? 展开
s/(?<x>a+)(?<y>b+)/$2$1/;
但是我现在只能用$2, $1这样的带序号的反向引用命名捕获,试过用类似$x, $<x>,/k<x>,/k'x'这样的都没成功,编译不过(perl),请问应该怎么写呢? 展开
1个回答
展开全部
文本:abbccc
正则:(a+)[^ab]*(b+)
替换:$2$1
结果:bbaccc
正则必须完全匹配后才能对里面的数据进行替换,如果文本是bbaccc,就因为查不到而不作处理。
使用在线测试:http://tool.oschina.net/regex
正则:(a+)[^ab]*(b+)
替换:$2$1
结果:bbaccc
正则必须完全匹配后才能对里面的数据进行替换,如果文本是bbaccc,就因为查不到而不作处理。
使用在线测试:http://tool.oschina.net/regex
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询