精易论坛
标题: 文本批量修改 [打印本页]
作者: BruceJoysky1987 时间: 2024-11-22 04:02
标题: 文本批量修改
有没有大佬教教文本替换的,批量替换,找了下论坛的都无法实现,自己写的只替换了1,通过正则取出了双引号中的文本,然后再循环里面替换替换的都是第一个,要么直接替换成了第四个(数组成员)
大致意思是匹配出所有的文本(双引号中的)
然后进行指定文本加上序号替换,例如:文本1、文本2以匹配的数量为准。
示例原始文本:
《
明天会更好“11”天
明天会更好“12”天
明天会更好“13”天
明天会更好“14”天
》
替换为:
《
明天会更好“文本1”天
明天会更好“文本2”天
明天会更好“文本3”天
明天会更好“文本4”天
》
或支持更多。。。
《.版本 2
.子程序 文本替换, 文本型
.参数 欲替换的文本, 文本型
.局部变量 处理结果, 文本型, , , 完成替换的
' 处理代码
返回 (处理结果)
》
子程序提供文本就可以,内部代码进行处理。
补充内容 (2024-11-22 04:03):
精易模块的不够替换
作者: waweiggfnh 时间: 2024-11-22 08:51
文本替换TEST.e
(538.07 KB, 下载次数: 2)
补充内容 (2024-11-22 08:52):
使用了精易模块的正则表达式
作者: mytiger 时间: 2024-11-22 08:54
调试输出 (文本_替换_批量 ( #常量1, “11,文本1|12,文本2|13,文本3|14,文本4”))
变量名 | 类 型 | 静态 | 数组 | 备 注 |
_arr | 文本型 | | 0 |
n | 整数型 | | |
_str | 文本型 | | |
_th | 文本型 | | 0 |
_str = str
_arr =
分割文本 (表达式,
“|”,
)
计次循环首 (取数组成员数 (_arr
), n
)
_th =
分割文本 (_arr
[n
],
“,”,
)
如果真 (取数组成员数 (_th
) = 2
)

_str =
子文本替换 (_str, _th
[1
], _th
[2
], , ,
真)

计次循环尾 ()返回 (_str
)
作者: mytiger 时间: 2024-11-22 08:57
变量名 | 类 型 | 静态 | 数组 | 备 注 |
_arr | 文本型 | | 0 |
n | 整数型 | | |
_str | 文本型 | | |
_th | 文本型 | | 0 |
_str = str
_arr =
分割文本 (表达式,
“|”,
)
计次循环首 (取数组成员数 (_arr
), n
)
_th =
分割文本 (_arr
[n
],
“,”,
)
如果真 (取数组成员数 (_th
) = 2
)

_str =
子文本替换 (_str, _th
[1
], _th
[2
], , ,
真)

计次循环尾 ()返回 (_str
)
作者: mytiger 时间: 2024-11-22 08:59
文本_替换_批量.e
(2.95 KB, 下载次数: 1)
作者: 算法艺术家 时间: 2024-11-22 14:36
|
文本_替换_批量 | 文本型 | |
|
原文本 | 文本型 | | | |
欲替换文本 | 文本型 | | | | 被替换文本 | 文本型 | | | |
重定义数组 (被替换文本, 真,
取数组成员数 (欲替换文本
))
计次循环首 (取数组成员数 (欲替换文本
), i
)
原文本 =
子文本替换 (原文本, 欲替换文本
[i
], 被替换文本
[i
], , ,
真)
计次循环尾 ()返回 (原文本
)|
子文本替换_数组 | 文本型 | |
|
完整文本 | 文本型 | | | |
欲替换的子文本 | 文本型 | | | | 作用于替换的文本 | 文本型 | | | | 是否区分大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
lenth | 整数型 | | 2 |
number | 整数型 | | |
i | 整数型 | | |
结果 | 文本型 | | |
lenth
[1
] =
取数组成员数 (欲替换的子文本
)lenth
[2
] =
取数组成员数 (作用于替换的文本
)结果 = 完整文本
判断 (lenth
[1
] = lenth
[2
])
number = lenth
[1
]
判断 (lenth
[1
] > lenth
[2
])
number = lenth
[2
]
number = lenth
[1
]
计次循环首 (number, i
)
结果 =
子文本替换 (结果, 欲替换的子文本
[i
], 作用于替换的文本
[i
], , , 是否区分大小写
)
计次循环尾 ()返回 (结果
)
作者: chenboss 时间: 2024-11-22 17:01
编辑框1.内容 =
文本替换 (编辑框1.内容
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
处理结果 | 文本型 | | |
fg | 文本型 | | 0 |
i | 整数型 | | |
s | 整数型 | | |
fg =
分割文本 (欲替换的文本,
#换行符, )
计次循环首 (取数组成员数 (fg
), i
)
如果真 (文本_取出中间文本 (fg
[i
],
#左引号, #右引号, ,
) ≠
“”)

s = s + 1
处理结果 = 处理结果 + 子文本替换 (fg [i], 文本_取出中间文本 (fg [i], #左引号, #右引号, , ), “文本” + 到文本 (s), , , 真) + #换行符
计次循环尾 ()返回 (处理结果
)
作者: BruceJoysky1987 时间: 2024-11-22 19:09
同行也有可以替换,但编号不对劲
第二行还是编号2,应该3往后的
作者: BruceJoysky1987 时间: 2024-11-22 19:11
需要灵活一点的,不用指定要替换的文本,要替换的文本相当于一个标识,到时候还要再进行替换一次正确的内容,所以排成序号好一点
作者: mytiger 时间: 2024-11-22 19:14
这个你在替换的时候要考虑替换顺序,比如说 "1"替换成"天","11"替换成"才",你肯定是要按照先替换11再替换1的顺序.
作者: BruceJoysky1987 时间: 2024-11-22 19:16
大佬有没有全局更改的,不管第一排都少个双引号里面都进行替换,例如5个,到下一排就算从6开始以此类推
作者: BruceJoysky1987 时间: 2024-11-22 19:31
已自行结局,感谢各位大佬的帮忙
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |