发表回复 
我对用 AutoHotKey 分割文本的一些看法
2014-11-24, 02 : 51
我对用 AutoHotKey 分割文本的一些看法
之前翻手册看到了一个将字符串分割为伪数组的函数,瞬间将以前找到的一些分割文本的工具的一些特征要求串连了起来。做了一下实验,发现用来分割文本似乎很不错。但是随着需​求的增加,一下子发现一个问题,它所需要的分割特征太难用,分隔符似乎限制数量或类型。这让人相当难受。

不过我之前第一想到的并非上面说的这种函数,而是用 RegExMatch 函数来分割文本。一开始呢碰到了问题,就是赤裸裸的分割文本不成功,何为赤裸裸?就是 RegExMatch(strings,strings,strings),主要问题是不能循环匹配。大概导致问题的原因在于查找字符串只能针对文本的第一个匹配进行获取​,二三四个匹配都不能获取。

也就是此函数在解析文本是碰到文本中第一个匹配就会结束并进入下一轮循环,而下一轮循环也是按照上一轮的规则进行的,坏处就是永远解析的是第一个匹配。

好难受呀……这个问题现在得到了解决:http://ahk8.com/qa/1225/

当然,这个帖子的主题不是说的正则表达式,而是分割字符串的函数。手册里面提到一种方法,就是用字符串替换的函数来查找文本中的分隔特征段,替换成一个文本中没有的符号。​

这个解决办法也许很熟悉,在网上搜索删除非段落换行也使用的这种方法。重点在于将普遍特征换成了单一特征,这种方法我从一开始知道就觉着很别扭。有点掩耳盗铃的感觉,甚至​脱裤子放屁……

不过实际上,手册上说的那种解决方法其实……其实也有缺陷,就是对一些格式明显,值不一样的分隔特征段有着一定的识别误差。这样,也许很多人都想到了用正则表达式的替换函​数来查找并替换……这也是一个办法,不过从一开始我就对这些办法有一种厌恶感,尽管它能满足需求,但我止不住的厌恶一直存在!

然而,我对分割函数的使用产生了很大的偏差,换句话说似乎和这个函数初始的用处并不一致。其实这个我一开始就很明白,甚至我当时第一印象认为它不能把整个文本文件看成一个​整体(刻板印象让我认为它只是针对行来处理)。就是这个思维导致我走了不少弯路,不过显然我知道也不会用的,因为我厌恶这种做法!

目前我对 AutoHotKey 的肤浅认知让我觉着,分割文本似乎就只有两种方法。一种是用分割字符串的函数来实现,另一种是用正则表达式来实现。尽管我一开始的需求后来直接找了现成的软件来完成……这​貌似说明了我的时间真不值钱呀,哈哈哈哈
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
[+] 1用户表示感谢江户川
2014-11-24, 22 : 56 (这个帖子最后修改于: 2014-11-24 23 : 00 by robertL.)
RE: 我对用 AutoHotKey 分割文本的一些看法
“分割文本”,可以举点例子..
仅仅是分隔,貌似给定一个位置范围即可,那就查找位置+获取子串,从后继续查找+获取子串..的循环吧?
正则主要是支持模式,相当于模糊匹配,可以用于以上循环所用的查找,也可同时获取子串
也许不纠结把这目的集成到一个函数,几行语句中,问题就清晰了..

论坛有正则-匹配模式的所有实例,不知道符合不,可能上面的问题主要在多特征模糊查找。

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合