鱼C论坛

 找回密码
 立即注册
查看: 2710|回复: 14

[已解决]如何自动替换正则

[复制链接]
发表于 2016-2-13 17:27:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 冬天的哈根达斯 于 2016-2-14 12:17 编辑

需要匹配的正则有1-100,文件是1.txt里面有1-200的数据。
第一次用正则r='1' 匹配1.txt。
第二次用正则r='2' 匹配1.txt。
第三次用正则r='3' 匹配1.txt。
一直到第一百次用正则r='100' 匹配1.txt。
这里面的正则r='1',怎么自动依次传入1-100的字符?
最佳答案
2016-2-14 12:16:48

可能是我没有说清楚!
需要匹配的正则有1-100,文件是1.txt里面有1-200的数据。
第一次用正则r='1' 匹配1.txt。
第二次用正则r='2' 匹配1.txt。
第三次用正则r='3' 匹配1.txt。
一直到第一百次用正则r='100' 匹配1.txt。
这里面的正则r='1',怎么自动依次传入1-100的字符?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-2-14 09:45:34 | 显示全部楼层
  1. r'100|[1-9][0-9]?'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-14 12:04:39 | 显示全部楼层

能解释一下吗?看不懂,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-14 12:16:48 | 显示全部楼层    本楼为最佳答案   

可能是我没有说清楚!
需要匹配的正则有1-100,文件是1.txt里面有1-200的数据。
第一次用正则r='1' 匹配1.txt。
第二次用正则r='2' 匹配1.txt。
第三次用正则r='3' 匹配1.txt。
一直到第一百次用正则r='100' 匹配1.txt。
这里面的正则r='1',怎么自动依次传入1-100的字符?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-14 13:45:49 | 显示全部楼层
冬天的哈根达斯 发表于 2016-2-14 12:16
可能是我没有说清楚!
需要匹配的正则有1-100,文件是1.txt里面有1-200的数据。
第一次用正则r='1' 匹配 ...

for each in range(1, 101)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-14 17:24:37 | 显示全部楼层
hldh214的答案还需要修改一下
for each in range(1, 101)
取出来的each还是int类型的
用str(each)变为字符串

还有正则表达式不一般用  r'xxx'  表示么(r='xxx'是怎么用的?)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-14 23:26:36 | 显示全部楼层
hldh214 发表于 2016-2-14 13:45
for each in range(1, 101)

能麻烦写一个完整的吗?我只是不知道怎么自动传入正则里。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-15 10:56:24 | 显示全部楼层
冬天的哈根达斯 发表于 2016-2-14 23:26
能麻烦写一个完整的吗?我只是不知道怎么自动传入正则里。

卧槽
  1. for each in range(1, 101):
  2.     r = str(each)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-15 22:33:59 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-15 22:40:46 | 显示全部楼层

报错了吗, 贴上提示
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-16 00:19:33 | 显示全部楼层
hldh214 发表于 2016-2-15 22:40
报错了吗, 贴上提示

r = r'1'
re.findall(r,1.txt)

这个正则怎么能和你的for each in range(1,101):
                                    r = str(each)
连起来?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-16 10:09:28 | 显示全部楼层

把re.findall(r,1.txt)放到for循环里面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-16 15:38:53 | 显示全部楼层
hldh214 发表于 2016-2-16 10:09
把re.findall(r,1.txt)放到for循环里面

试过了不行?你可以成功吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-16 16:23:49 | 显示全部楼层
冬天的哈根达斯 发表于 2016-2-16 15:38
试过了不行?你可以成功吗?

你得告诉我是哪里不行啦, 报错还是不起效?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-17 19:36:31 | 显示全部楼层
hldh214 发表于 2016-2-16 16:23
你得告诉我是哪里不行啦, 报错还是不起效?

不起效果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-19 15:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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