找回密码
 加入
搜索
查看: 4060|回复: 9

[AU3基础] [已解决] 请问, 如何正则匹配整行文本?

  [复制链接]
发表于 2015-3-28 12:45:17 | 显示全部楼层 |阅读模式
本帖最后由 131738 于 2015-3-28 15:58 编辑

正则大师 afan 出手, 问题解决!
正则表达式在 2 楼!

在一个 txt 文件中, 有 1 行这样的文本:
第 1 个字符为:        "  _  "  
最后 1 个字符, 或者说行结束的可见字符为:     "  )  "
这行文本在 txt 文件中是一个新行的开始, 并且独占一整行.

脚本中这样判断没有效果:
$String = 读取 txt 文件的行文本字符串
StringLeft($String, 1) = "_" And StringRight($String, 1) = ")"

请问如何正则匹配这样的整行文本?
发表于 2015-3-28 13:32:40 | 显示全部楼层
这样的吧
Local $Str = _
                '_ytjkuy)kul)' & @CRLF & _
                'lkjlryekl'
;~MsgBox(0, '原字符串', $Str)
Local $aSR = StringRegExp($str, '^\s*(_\V+\))\h*(?=\v|$)', 3)
If Not @Error Then MsgBox(0, $aSR[0], $Str)
 楼主| 发表于 2015-3-28 14:21:38 | 显示全部楼层
本帖最后由 131738 于 2015-3-28 14:23 编辑
这样的吧
afan 发表于 2015-3-28 13:32


不是, $Str 设置不对!
如果实在要这样设置,应是:

$Str = '_ytjkuy) (kul ) lkjlryekl)'
行文本以    _   字符开头,   以    )   字符结束这一行. 当然还有回车, 换行等不可见字符.

如果这样在脚本中设置, 我上面的 If 语句可以判断!
问题是 $Str 不是设置的, 而是循环读取 txt 文件一行文本得来的, 这样我的 If 语句就没有效果了
发表于 2015-3-28 14:24:33 | 显示全部楼层
本帖最后由 afan 于 2015-3-28 14:25 编辑

我那个就是_开头)结束行啊
只不过我加了一行,为了适应更多情况而已,单行、多行都能判断
发表于 2015-3-28 14:28:08 | 显示全部楼层
莫非你是想找出符合条件的行?而此行不一定在首行
发表于 2015-3-28 14:32:52 | 显示全部楼层
本帖最后由 afan 于 2015-3-28 14:34 编辑
不是, $Str 设置不对!
如果实在要这样设置,应是:

$Str = '_ytjkuy) (kul ) lkjlryekl)'
行文本以  ...
131738 发表于 2015-3-28 14:21



    如果你是循环读取,那就每次只有一行了。你是想判断是否符合_*)条件? 那就仍然用2#的代码就行…
 楼主| 发表于 2015-3-28 14:36:07 | 显示全部楼层
如果你是循环读取,那就每次只有一行了。你是想判断是否符合_*)条件? 那就仍然用2#的代码就行…
afan 发表于 2015-3-28 14:32


我再试试看......
 楼主| 发表于 2015-3-28 14:37:01 | 显示全部楼层
莫非你是想找出符合条件的行?而此行不一定在首行
afan 发表于 2015-3-28 14:28


对的...........
发表于 2015-3-28 14:39:47 | 显示全部楼层
对的...........
131738 发表于 2015-3-28 14:37



    那你就不用逐行判断了,2#的表达式前面加个 (?m) 即可,即“Local $aSR = StringRegExp($str, '(?m)^\s*(_\V+\))\h*(?=\v|$)', 3)”
 楼主| 发表于 2015-3-28 15:56:49 | 显示全部楼层
那你就不用逐行判断了,2#的表达式前面加个 (?m) 即可,即“Local $aSR = StringRegExp($str, '( ...
afan 发表于 2015-3-28 14:39


谢谢! 2# 正则通过....
因为还要判断其它行的文本, 暂时没有加 (?m).....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 16:47 , Processed in 0.071112 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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