白衣国度 发表于 2020-3-9 14:53

易语言正则问题

本帖最后由 白衣国度 于 2020-3-9 16:22 编辑

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击
.局部变量 源文本, 文本型

源文本 = 网页_取网页源码 (“https://www.7160.com/Cosplay/”)


.子程序 正则_匹配单个, 文本型, , 本子程序采用【精易编程助手】生成。成功返回匹配的文本,失败返回空文本。
.参数 源文本, 文本型, , 欲被匹配的文本
.参数 匹配索引, 整数型, , 表达式的索引,从1开始将代表为子匹配文本的索引。
.参数 子匹配索引, 整数型, 可空, 可空。 子表达式的索引,从1开始将代表为子匹配文本的索引
.局部变量 局_正则, 正则表达式类, , , 此类为精易模块里面的正则类,精易模块下载地址:http://ec.125.la/

.如果真 (局_正则.创建 (“\<img.*src *= *['#引号]*(\S+)[#引号'].*\>”, 源文本, 假, 假, 真, 真) = 假)
    信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, , )
    返回 (“”)
.如果真结束
.如果真 (局_正则.取匹配数量 () = 0)
    信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, , )
    返回 (“”)
.如果真结束
.如果真 (匹配索引 < 1)
    信息框 (“参数二 - 匹配索引必须大于0。”, #错误图标, , )
    返回 (“”)
.如果真结束

.判断开始 (匹配索引 > 0 且 子匹配索引 > 0)' 如果 匹配索引 和 子匹配索引 都大于0,则匹配子匹配文本
    返回 (局_正则.取子匹配文本 (匹配索引, 子匹配索引))

.判断 (匹配索引 > 0)' 如果只有匹配索引大于0,则返回指定的匹配文本
    返回 (局_正则.取匹配文本 (匹配索引))
.默认

.判断结束
返回 (“”)
我想将匹配后的结果输出到表格内,后面的代码我该怎么写

白衣国度 发表于 2020-3-9 14:54

就是输出子匹配文本到表格内,实在不行到变量a也行

呓语丶 发表于 2020-3-9 15:12

计次循环里操作就可以了

小爱网络 发表于 2020-3-9 15:19


正则.取子匹配文本

白衣国度 发表于 2020-3-9 15:25

小爱网络 发表于 2020-3-9 15:19
正则.取子匹配文本

这是什么模块的

白衣国度 发表于 2020-3-9 15:31

呓语丶 发表于 2020-3-9 15:12
计次循环里操作就可以了

能发一下代码吗或者源码也行,我这边不知道什么原因加不了参数

白衣国度 发表于 2020-3-9 15:40

懵比!神奇,他刷完啥都不对

影子恋人 发表于 2020-3-9 15:50

精易模块

白衣国度 发表于 2020-3-9 15:57

影子恋人 发表于 2020-3-9 15:50
精易模块

还是不行欸!大神能发一下源码吗

小爱网络 发表于 2020-3-9 16:15

.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 源, 文本型, , , 网页源文本
.程序集变量 变量, 文本型, , , 正则返回文本
.程序集变量 局_正则, 正则表达式类, , , 此类为精易模块里面的正则类,精易模块下载地址:http://ec.125.la/

.子程序 _按钮1_被单击

源 = 网页_取网页源码 (“https://www.7160.com/Cosplay/”)
.如果真 (正则_匹配单个 (源, 1, 1) ≠ “”)
    变量 = 局_正则.取子匹配文本 (1, 1, )
    调试输出 (变量)
.如果真结束


.子程序 正则_匹配单个, 文本型, , 本子程序采用【精易编程助手】生成。成功返回匹配的文本,失败返回空文本。
.参数 源文本, 文本型, , 欲被匹配的文本
.参数 匹配索引, 整数型, , 表达式的索引,从1开始将代表为子匹配文本的索引。
.参数 子匹配索引, 整数型, 可空, 可空。 子表达式的索引,从1开始将代表为子匹配文本的索引

.如果真 (局_正则.创建 (“\<img.*src *= *['#引号]*(\S+)[#引号'].*\>”, 源文本, 假, 假, 真, 真) = 假)
    信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, , )
    返回 (“”)
.如果真结束
.如果真 (局_正则.取匹配数量 () = 0)
    信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, , )
    返回 (“”)
.如果真结束
.如果真 (匹配索引 < 1)
    信息框 (“参数二 - 匹配索引必须大于0。”, #错误图标, , )
    返回 (“”)
.如果真结束

.判断开始 (匹配索引 > 0 且 子匹配索引 > 0)' 如果 匹配索引 和 子匹配索引 都大于0,则匹配子匹配文本
    返回 (局_正则.取子匹配文本 (匹配索引, 子匹配索引))

.判断 (匹配索引 > 0)' 如果只有匹配索引大于0,则返回指定的匹配文本
    返回 (局_正则.取匹配文本 (匹配索引))
.默认

.判断结束
返回 (“”)
页: [1] 2
查看完整版本: 易语言正则问题