« 易语言的记事本文本导入到MDB数据库源码易语言制作的邮箱POST注册易源码 »

易语言用彗星正则表达式取文本源码

.版本 2
.支持库 iext2
.支持库 iext

.程序集 窗口程序集1
.程序集变量 字符位置, 整数型
.程序集变量 待查找内容改变, 文本型
.程序集变量 文本格式, 字符格式
.程序集变量 默认文本格式, 字符格式
.程序集变量 编辑框标记, 文本型

.子程序 __启动窗口_创建完毕

文本格式.文本颜色 = #蓝色
默认文本格式.文本颜色 = #黑色
事件转移 (查找内容栏, 地址栏)

.子程序 _跳转按钮_被单击

标签1.标题 = “载入中……”
连续赋值 (真, 地址栏.禁止, 查找内容栏.禁止, 跳转按钮.禁止, 查找按钮.禁止, 选择框1.禁止, 网页内容显示框.禁止)
网页内容显示框.内容 = 到文本 (访问网页 (地址栏.内容))
待查找内容改变 = “”
标签1.标题 = “载入完毕”
连续赋值 (假, 地址栏.禁止, 查找内容栏.禁止, 跳转按钮.禁止, 查找按钮.禁止, 选择框1.禁止, 网页内容显示框.禁止)

.子程序 _地址栏_放开某键, 逻辑型, , 回车执行
.参数 键代码, 整数型
.参数 功能键状态, 整数型

.如果真 (键代码 = #回车键)
_跳转按钮_被单击 ()
.如果真结束


.子程序 _查找按钮_被单击
.局部变量 找到文本次数, 整数型
.局部变量 正则, 彗星正则表达式类
.局部变量 正则表达式, 文本型
.局部变量 正则结果, 整数型
.局部变量 i, 整数型

' 判断内容栏是否为空
.如果 (查找内容栏.内容 = “”)
信息框 (“请输入欲查找内容”, 0, )
.否则
.如果 (选择框2.选中 = 真)
' 正则匹配
字符位置 = 0
正则结果列表框.全部删除 ()
正则表达式 = 子文本替换 (查找内容栏.内容, “*”, “\S+”, , , 真)
正则表达式 = 子文本替换 (正则表达式, “?”, “\S”, , , 真)
正则.创建 (正则表达式)
正则结果 = 正则.搜索全部 (网页内容显示框.内容)
.计次循环首 (正则结果, i)
正则结果列表框.插入表项 (, , , , , )
正则结果列表框.置标题 (i - 1, 0, 正则.取匹配文本 (i))
.如果真 (选择框1.选中 = 真)
字符位置 = 网页内容显示框.寻找 (字符位置 + 1, , , 正则结果列表框.取标题 (i - 1, 0))
网页内容显示框.起始选择位置 = 字符位置
网页内容显示框.被选择字符数 = 取文本长度改 (正则结果列表框.取标题 (i - 1, 0))
正则结果列表框.置标题 (i - 1, 1, 到文本 (网页内容显示框.起始选择位置))
正则结果列表框.置标题 (i - 1, 2, 到文本 (网页内容显示框.被选择字符数))
网页内容显示框.置选择区字符格式 (文本格式)
.如果真结束

.计次循环尾 ()
标签1.标题 = “共匹配 ” + 到文本 (正则结果) + “ 处”

.否则
' 查找文本
.如果真 (待查找内容改变 ≠ 查找内容栏.内容 且 选择框1.选中 = 真)
字符位置 = 0
网页内容显示框.起始选择位置 = 0
网页内容显示框.被选择字符数 = 取文本长度 (网页内容显示框.内容)
网页内容显示框.置选择区字符格式 (默认文本格式)
网页内容显示框.起始选择位置 = 0
网页内容显示框.被选择字符数 = 0
待查找内容改变 = 查找内容栏.内容
.循环判断首 ()
网页内容显示框.置选择区字符格式 (文本格式)
字符位置 = 网页内容显示框.寻找 (字符位置 + 1, , , 查找内容栏.内容)
网页内容显示框.起始选择位置 = 字符位置
网页内容显示框.被选择字符数 = 取文本长度改 (查找内容栏.内容)
找到文本次数 = 找到文本次数 + 1
.循环判断尾 (字符位置 ≠ -1)
找到文本次数 = 找到文本次数 - 1
标签1.标题 = “共找到 ” + 到文本 (找到文本次数) + “ 处”
.如果真结束

' 依次跳转到文本所在位置
字符位置 = 网页内容显示框.起始选择位置
字符位置 = 网页内容显示框.寻找 (字符位置 + 1, , , 查找内容栏.内容)
.如果 (字符位置 = -1)
信息框 (“全文查找完毕”, 0, “”)
.否则
网页内容显示框.起始选择位置 = 字符位置
网页内容显示框.被选择字符数 = 取文本长度改 (查找内容栏.内容)
网页内容显示框.获取焦点 ()
.如果结束

.如果结束

.如果结束


.子程序 _正则结果列表框_被双击, 逻辑型, , 执行解析
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 选项, 整数型

选项 = 正则结果列表框.现行选中项
网页内容显示框.起始选择位置 = 到数值 (正则结果列表框.取标题 (选项, 1))
网页内容显示框.被选择字符数 = 到数值 (正则结果列表框.取标题 (选项, 2))
网页内容显示框.获取焦点 ()

.子程序 取文本长度改, 整数型, , 中文2字符算1字符
.参数 文本内容, 文本型
.局部变量 文本长度, 整数型
.局部变量 文本内容字节集, 字节集
.局部变量 a, 整数型, , , 计次循环变量
.局部变量 中文字符数, 整数型

文本长度 = 取文本长度 (文本内容)
文本内容字节集 = 到字节集 (文本内容)
.计次循环首 (文本长度, a)
.如果真 (到整数 (取字节集数据 (文本内容字节集, 1, a)) > 126)
中文字符数 = 中文字符数 + 1
.如果真结束

.计次循环尾 ()
返回 (文本长度 - 中文字符数 ÷ 2)

.子程序 _地址栏_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 编辑框, 编辑框

编辑框 = 取事件组件 ()
.如果真 (编辑框.被选择字符数 ≠ -1 且 编辑框.标记 ≠ 编辑框标记)
编辑框.获取焦点 ()
编辑框.被选择字符数 = -1
编辑框标记 = 编辑框.标记
.如果真结束


.子程序 _选择框2_被单击

.如果 (选择框2.选中 = 真)
网页内容显示框.宽度 = 560
查找按钮.标题 = “正则查找”
.否则
网页内容显示框.宽度 = 864
查找按钮.标题 = “查找下一个”
.如果结束

 

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

<< 2012-1 >>

Sun

Mon

Tue

Wed

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Powered By Z-Blog 1.8 Walle Build 100427  Theme By 一方博客

Copyright www.5h55.com 一方博客 Rights Reserved.,ICP证号:鄂ICP备07001564号-1