请教正则表达式在替换中如何引用命名捕获?

比如字符串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),请问应该怎么写呢?
展开
 我来答
aaaagq
2015-11-17 · TA获得超过185个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:283万
展开全部
文本:abbccc
正则:(a+)[^ab]*(b+)
替换:$2$1
结果:bbaccc
正则必须完全匹配后才能对里面的数据进行替换,如果文本是bbaccc,就因为查不到而不作处理。
使用在线测试:http://tool.oschina.net/regex
更多追问追答
追问
我说的是用命名捕获分组,你的正则里没用命名。
追答

用于查找这种写法可以运行。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式