蒋阿君 发表于 2023-8-23 14:48

易语言正则使用过程中遇到的问题,请大佬指点

本帖最后由 蒋阿君 于 2023-8-23 14:51 编辑

目的:把杂乱文本处理为想要的格式
杂乱文本:
08-18 10:58:24        table: 哈杭州3 key: CDX93 value: 0000100000000000000000000000000000000000 -> 0000100000000000000000000000000000000000
08-18 10:58:24        table: 哈杭州3 key: CDX94 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX95 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX96 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX97 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX98 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX99 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX100 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX101 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX102 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX103 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX104 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX105 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX106 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX107 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX108 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX109 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX110 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX111 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX112 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX113 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX114 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX115 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX116 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX117 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX118 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX119 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX120 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX121 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX122 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX123 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX124 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX125 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX126 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX127 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX128 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX129 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX130 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX131 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX132 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX133 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX134 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX135 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX136 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX137 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX138 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX139 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX140 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX141 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX142 value: [-] -> [-]
08-18 10:58:24        table:key: CDX1 value: [-] -> [-]
08-18 10:58:24        table:key: CDX2 value: [-] -> [-]
08-18 10:58:24        table:key: CDX3 value: [-] -> [-]
08-18 10:58:24        table:key: CDX4 value: [-] -> [-]
08-18 10:58:24        table:key: CDX5 value: [-] -> [-]
08-18 10:58:24        table:key: CDX6 value: [-] -> [-]
08-18 10:58:24        table:key: CDX7 value: [-] -> [-]
08-18 10:58:24        table:key: CDX8 value: [-] -> [-]
08-18 10:58:24        table:key: CDX9 value: [-] -> [-]
目标格式:
存档保存("CDX94","")
存档保存("CDX95","")
存档保存("CDX96","")
存档保存("CDX97","")
存档保存("CDX98","")

参考教学视频:https://www.bilibili.com/video/BV1G54y1R7zS/?vd_source=8431021b53d9b3de0f3a9a1b29cd6942

程序中使用的正则表达式:



“table: (.*?)\n|key: (.*?)\n| value: (.*?)\n”

程序分步运行:

这个时候是可以正常取到文本数据的

目前遇到问题:在进行正则替换时取不到数据,如下图所示

pjy612 发表于 2023-8-23 14:54

正则直接就错了吧? 先学会正则再使用。。。
推荐在 https://regex101.com/ 里面先练练手

a1100330 发表于 2023-8-23 15:00

table: ([\s\S]*?) key: ([\s\S]*?) value: ([\s\S]*?)

solai8 发表于 2023-8-23 15:07

如果是每行待读取内容是固定格式的,直接用文本_取出中间文本 就可以了,用不上正则啊

蒋阿君 发表于 2023-8-23 15:15

pjy612 发表于 2023-8-23 14:54
正则直接就错了吧? 先学会正则再使用。。。
推荐在 https://regex101.com/ 里面先练练手


正则如果正确的话,匹配结果是这样显示吗

蒋阿君 发表于 2023-8-23 15:19

solai8 发表于 2023-8-23 15:07
如果是每行待读取内容是固定格式的,直接用文本_取出中间文本 就可以了,用不上正则啊

等完成这个正则的方法,我再去尝试下您说的这个方式

pjy612 发表于 2023-8-23 15:25

本帖最后由 pjy612 于 2023-8-23 15:30 编辑

蒋阿君 发表于 2023-8-23 15:19
等完成这个正则的方法,我再去尝试下您说的这个方式
感觉你要的正则是
table:\s+(.*)\s+key:\s+(.*)\s+value:\s+(.*)\s*

可以直接浏览器里拿 JS 试试
data = `08-18 10:58:24        table: 哈杭州3 key: CDX136 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX137 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX138 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX139 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX140 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX141 value: [-] -> [-]
08-18 10:58:24        table: 哈杭州3 key: CDX142 value: [-] -> [-]
`
ma = data.matchAll(/table:\s+(.*)\s+key:\s+(.*)\s+value:\s+(.*)\s*/g)
for (let m of ma) {
    console.log(m)
}

最后怎么用到易语言里面那得自己研究了。。。

aq425518860 发表于 2023-8-23 16:37

给你写的列子 https://425518860.lanzoue.com/iSAmL167094d
http://ys-i.ysepan.com/607688273/916622161/jsnwQ5t581K884I7NLG9d/121.png

ZhuGeXuanYuan 发表于 2023-8-23 17:09

精益模块文本_取出中间文本() 用这个函数即可

wyl0205 发表于 2023-8-23 18:52

本帖最后由 wyl0205 于 2023-8-23 19:57 编辑

这种数据,正则最简单,赶紧学习下正则吧,学了这些都不是事。
易语言的正则不懂

table:\h(.+)\hkey:\h(.+)\hvalue
提取两列值

如果只要key值
key:\h(.+)\hvalue

试试
页: [1] 2
查看完整版本: 易语言正则使用过程中遇到的问题,请大佬指点