找回密码
 加入
搜索
查看: 7159|回复: 14

[AU3基础] (已解决)用什么函数可以取出字符串中从开始到第一个回车(或换行符)之间的 字符?

  [复制链接]
发表于 2012-11-18 15:28:24 | 显示全部楼层 |阅读模式
本帖最后由 yufei8051 于 2012-11-20 16:16 编辑

用什么函数可以取出字符串中从开始到第一个回车(或换行)之间的
字符?
包括取出从第二个回车到第三个回车之间的所有字符?

如下面的例子,用信息工具取出某窗口的文字:
节能产品惠民工程高效节能容积式空气压
缩机推广实施细则发布 节能压缩机概念
股  发表于 2012-11-20 14:20:04     
  关于印发《节能产品惠民工程高效节能
容积式空气压缩 ...

小俞2009 

粉色魔窟——与你同行

设置关注
清除信息
120/120
<11

-

20

 

14

:

22>
观察可见,其实每一段之间都有一个空行。可以以此作识别码。
怎样分别取出第二段、第三段、第五段?

烦请高手根据本例给出源码,不胜感激



怎么放到代码框里就自动行换了?第一段是不换行的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2012-11-18 15:30:05 | 显示全部楼层
用StringLeft 之类的函数没法达
到目的
 楼主| 发表于 2012-11-18 15:40:15 | 显示全部楼层
貌似用正则表达式可以,看不明白呀
本贴是
www.autoitx.com/forum.php?mod=vi ... mp;page=1#pid486701
的继续,取文字的问题解决了,现在进一步处理不会
 楼主| 发表于 2012-11-18 15:41:20 | 显示全部楼层
哪位给个例子呢?
发表于 2012-11-18 15:46:32 | 显示全部楼层
stringsplit($str, @cr)
 楼主| 发表于 2012-11-18 16:15:56 | 显示全部楼层
高手,能给出详细代码吗?真心看不懂啊
发表于 2012-11-18 16:32:09 | 显示全部楼层
本帖最后由 netegg 于 2012-11-18 16:38 编辑

那就正则吧
发表于 2012-11-19 09:55:58 | 显示全部楼层
其实这个要是另一个文件里的话,用_filereadtoarray就行了
发表于 2012-11-19 09:56:27 | 显示全部楼层
#include <Array.au3>
$txt=FileRead(@ScriptDir & "\test.txt")
$array=StringRegExp($txt,".+",3)
_ArrayDisplay($array)
 楼主| 发表于 2012-11-20 14:27:16 | 显示全部楼层
shqf 发表于 2012-11-19 09:56



    感谢你的回复。
我试了一下,还是只能取出前三行,我想的是分别取出前三段,如一楼所示那种文本
发表于 2012-11-20 15:07:37 | 显示全部楼层
回复 11# yufei8051


    怎么还在问这个问题,之前不是已经解决了吗?
http://www.autoitx.com/forum.php ... amp;fromuid=7644923

无任何区别
发表于 2012-11-20 15:10:42 | 显示全部楼层
本帖最后由 afan 于 2012-11-20 15:12 编辑
Local $Str = _
                '节能产品惠民工程高效节能容积式空气压' & @CRLF & _
                '缩机推广实施细则发布 节能压缩机概念' & @CRLF & _
                '股  发表于 2012-11-20 14:20:04     ' & @CRLF & _
                '  关于印发《节能产品惠民工程高效节能' & @CRLF & _
                '容积式空气压缩 ...' & @CRLF & @CRLF & _
                '小俞2009 ' & @CRLF & @CRLF & _
                '粉色魔窟——与你同行' & @CRLF & @CRLF & _
                '设置关注' & @CRLF & _
                '清除信息' & @CRLF & _
                '120/120' & @CRLF & _
                '<11' & @CRLF & @CRLF & _
                '-' & @CRLF & @CRLF & _
                '20' & @CRLF & @CRLF & @CRLF & @CRLF & _
                '14' & @CRLF & @CRLF & _
                ':' & @CRLF & @CRLF & _
                '22>'
MsgBox(0, '原字符串', $Str)
Local $sRER = StringRegExpReplace($str, '\r\n(?!\r)', '')
Local $aSR1 = StringRegExp($sRER, '\V+', 3)
If Not @Error Then MsgBox(0, '分开取', '第一行:' & @TAB & $aSR1[0] & @CRLF & _
                                        '第二行:' & @TAB & $aSR1[1] & @CRLF & _
                                        '第三行:' & @TAB & $aSR1[2])
#include <Array.au3>
_ArrayDisplay($aSR1, '')
提醒下,解决了要加“已解决”,不是“解决”。
 楼主| 发表于 2012-11-20 16:16:04 | 显示全部楼层
回复 13# afan


谢谢超版回复。
其实我是想看看更多的例子,学习一下正则表达式。
马上都改成已解决
发表于 2012-11-20 16:43:21 | 显示全部楼层
用正则或拆分吧。我都是这样搞的
 楼主| 发表于 2015-1-19 09:34:11 | 显示全部楼层
还是我自己问过的,当时照猫画虎解决了,碰到类似的,只要有点变化的就还是发懵
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 15:45 , Processed in 0.082082 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表