开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1282|回复: 6
收起左侧

[求助] 正则替换子文本问题

[复制链接]
结帖率:97% (32/33)
发表于 2020-5-24 13:01:52 | 显示全部楼层 |阅读模式   四川省宜宾市
请教下,用正则怎么只替换子匹配文本呢
比如这种格式的

X1 Y1 Z1
X1.11 Y2.22 Z3.33
X1.12 Y2.23 Z2.23
X1.13 Y2.24 Z1.13

X-1.13 Y-2.24 Z-1.13
X1.13 Y-2.24 Z-1.13

我只想替换Z后面的数字或者Y后面的数字,请教大神帮帮忙。

结帖率:100% (3/3)

签到天数: 8 天

发表于 2020-5-24 13:04:23 | 显示全部楼层   湖北省黄冈市
正则.替换()

补充内容 (2020-5-24 13:07):
匹配所有Z和Y开头的数字: ([Z|Y])(-?\d+\.?\d*)\S*

补充内容 (2020-5-24 13:10):
.版本 2
.支持库 spec

.局部变量 正则, 正则表达式类

正则.创建 (“([Z|Y])(-?\d+\.?\d*)\S*”, #常量1, , , )

调试输出 (正则.替换 (“$18.88”))

回复 支持 反对

使用道具 举报

结帖率:97% (32/33)
 楼主| 发表于 2020-5-24 14:07:09 | 显示全部楼层   四川省宜宾市
Heisenberg 发表于 2020-5-24 13:04
正则.替换()

补充内容 (2020-5-24 13:07):

我需要把整行都带到表达式里边,为了足够精确匹配。替换也不是把所有匹配到的子匹配文本替换成一个内容,

比如匹配索引为1的时候就替换成1,索引为2的时候就替换成2,替换为的文本不是固定的

原文
X1 Y1 Z1
X1.11 Y2.22 Z3.33
X1.12 Y2.23 Z2.23
X1.13 Y2.24 Z1.13

替换后
X1 Y1 Z1.0
X1.11 Y2.22 Z2.0
X1.12 Y2.23 Z3.0
X1.13 Y2.24 Z4.0


像这种能解决吗?想了很久不知道怎么处理
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 8 天

发表于 2020-5-24 14:12:19 | 显示全部楼层   湖北省黄冈市
jy896009 发表于 2020-5-24 14:07
我需要把整行都带到表达式里边,为了足够精确匹配。替换也不是把所有匹配到的子匹配文本替换成一个内容, ...

你这个都好像没有规律 你到底是要替换Z开头的呢? 还是ZY开头的
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2020-5-24 15:57:16 | 显示全部楼层   山东省滨州市
x是固定的吧,可以用通配符
回复 支持 反对

使用道具 举报

结帖率:97% (32/33)
 楼主| 发表于 2020-5-24 17:00:20 | 显示全部楼层   四川省宜宾市
Heisenberg 发表于 2020-5-24 14:12
你这个都好像没有规律 你到底是要替换Z开头的呢? 还是ZY开头的

XYZ字母是固定的,数字都不是固定的,替换的东西也不是固定的

表达式我可以自己写,我要的就是把  
正则.取子匹配文本(1,1)替换为1,
正则.取子匹配文本(2,1)替换为2
正则.取子匹配文本(3,1)替换为3

大概就这意思吧。





回复 支持 反对

使用道具 举报

结帖率:98% (339/345)

签到天数: 1 天

发表于 2023-2-3 19:03:30 | 显示全部楼层   重庆市重庆市
可以用通配符
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表