精易论坛

标题: 请问正则怎么提取有规律的数字 [打印本页]

作者: 相随    时间: 2025-4-21 18:23
标题: 请问正则怎么提取有规律的数字
比如纯文本是 :1,2,3,4,5,10,12,13,14,15
比如纯文本是 :320,321,322,350,360,361,362




这里面如何提取 12345为一组 ,10为一组,12,13,14,15为一组

这里面如何提取 320,321,322为一组 ,350为一组,360,361,362为一组



谢谢啦!~后续的规律都是这样子的数字,主要是想将有规律的数字和没有规律的区分出来

作者: Ruang    时间: 2025-4-21 18:23
  
子程序名返回值类型公开备 注
功能_取连续数值_整数型整数型 共分为几组数据
参数名类 型参考可空数组备 注
参_数组整数型
参_返回文本文本型
变量名类 型静态数组备 注
局_计次整数型 
局_当前值整数型 
局_存储值文本型 
局_每组数据文本型 
局_组数整数型 
计次循环首 (取数组成员数 (参_数组), 局_计次)
如果真 (局_计次 = 1)
局_当前值 = 参_数组 [局_计次]
如果 (局_当前值 = 参_数组 [局_计次] - 1)
局_每组数据 = 局_每组数据 + “,”到文本 (参_数组 [局_计次])
局_每组数据 = 局_每组数据 + #换行符到文本 (参_数组 [局_计次])
局_组数 = 局_组数 + 1
局_存储值 = 局_存储值 + 局_每组数据
局_每组数据 = “”
局_当前值 = 参_数组 [局_计次]
计次循环尾 ()
参_返回文本 = 子文本替换 (局_存储值, #换行符, “”, , 1, )
返回 (局_组数)
子程序名返回值类型公开备 注
功能_取连续数值_文本型整数型 共分为几组数据
参数名类 型参考可空数组备 注
参_数组文本型
参_返回文本文本型
变量名类 型静态数组备 注
局_计次整数型 
局_当前值文本型 
局_存储值文本型 
局_每组数据文本型 
局_组数整数型 
计次循环首 (取数组成员数 (参_数组), 局_计次)
如果真 (局_计次 = 1)
局_当前值 = 参_数组 [局_计次]
如果 (局_当前值 = 到文本 (到整数 (参_数组 [局_计次]) - 1))
局_每组数据 = 局_每组数据 + “,” + 参_数组 [局_计次]
局_每组数据 = 局_每组数据 + #换行符 + 参_数组 [局_计次]
局_组数 = 局_组数 + 1
局_存储值 = 局_存储值 + 局_每组数据
局_每组数据 = “”
局_当前值 = 参_数组 [局_计次]
计次循环尾 ()
参_返回文本 = 子文本替换 (局_存储值, #换行符, “”, , 1, )
返回 (局_组数)

截图20250422130320.png (52.56 KB, 下载次数: 0)

截图20250422130320.png

demo.e

950.11 KB, 下载次数: 1


作者: 相随    时间: 2025-4-21 18:33
最好能提供一个易语言例子,谢谢啦!
作者: zainex    时间: 2025-4-22 10:20
正则只能实现简单的模式匹配,这个模式可以某种规律,但这种规律不能是依赖上下文的,即便它是简单的。
因此,对于你给出的这种涉及上下文的规律,用正则是无法直接取出的,只能通过编写其它代码来辅助实现:

  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
文本文本型 
正则正则表达式 
搜索结果搜索结果0
数量整数型 
临时文本型 
数字整数型 
整数型 
成员文本型 
结果文本型0
文本 = “320,321,322,350,360,361,362,1,3,6,7”
正则.创建 (“[0-9]+”, )
搜索结果 = 正则.搜索全部 (文本)
数量 = 取数组成员数 (搜索结果)
如果真 (数量 ≤ 0)
返回 ()
数字 = 到整数 (搜索结果 [1].取匹配文本 (文本, ))
临时 = 到文本 (数字)“,”
计次循环首 (数量 - 1, 数)
成员 = 搜索结果 [数 + 1].取匹配文本 (文本, )
如果 (数字 + 1 = 到整数 (成员))
临时 = 临时 + 成员 + “,”
加入成员 (结果, 取文本左边 (临时, 取文本长度 (临时) - 1))
临时 = 成员 + “,”
数字 = 到整数 (成员)
计次循环尾 ()
加入成员 (结果, 取文本左边 (临时, 取文本长度 (临时) - 1))
调试输出 (结果)


i支持库列表   支持库注释   
RegEx正则表达式支持库
spec特殊功能支持库






欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4