[已解决] 请问, 如何正则匹配整行文本?
本帖最后由 131738 于 2015-3-28 15:58 编辑正则大师 afan 出手, 问题解决!
正则表达式在 2 楼!
在一个 txt 文件中, 有 1 行这样的文本:
第 1 个字符为: "_"
最后 1 个字符, 或者说行结束的可见字符为: ")"
这行文本在 txt 文件中是一个新行的开始, 并且独占一整行.
脚本中这样判断没有效果:
$String = 读取 txt 文件的行文本字符串
StringLeft($String, 1) = "_" And StringRight($String, 1) = ")"
请问如何正则匹配这样的整行文本? 这样的吧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, $Str) 本帖最后由 131738 于 2015-3-28 14:23 编辑
这样的吧
afan 发表于 2015-3-28 13:32 http://www.autoitx.com/images/common/back.gif
不是, $Str 设置不对!
如果实在要这样设置,应是:
$Str = '_ytjkuy) (kul ) lkjlryekl)'
行文本以 _ 字符开头, 以 ) 字符结束这一行. 当然还有回车, 换行等不可见字符.
如果这样在脚本中设置, 我上面的 If 语句可以判断!
问题是 $Str 不是设置的, 而是循环读取 txt 文件一行文本得来的, 这样我的 If 语句就没有效果了 本帖最后由 afan 于 2015-3-28 14:25 编辑
我那个就是_开头)结束行啊
只不过我加了一行,为了适应更多情况而已,单行、多行都能判断 莫非你是想找出符合条件的行?而此行不一定在首行 本帖最后由 afan 于 2015-3-28 14:34 编辑
不是, $Str 设置不对!
如果实在要这样设置,应是:
$Str = '_ytjkuy) (kul ) lkjlryekl)'
行文本以...
131738 发表于 2015-3-28 14:21 http://www.autoitx.com/images/common/back.gif
如果你是循环读取,那就每次只有一行了。你是想判断是否符合_*)条件? 那就仍然用2#的代码就行… 如果你是循环读取,那就每次只有一行了。你是想判断是否符合_*)条件? 那就仍然用2#的代码就行…
afan 发表于 2015-3-28 14:32 http://www.autoitx.com/images/common/back.gif
我再试试看...... 莫非你是想找出符合条件的行?而此行不一定在首行
afan 发表于 2015-3-28 14:28 http://www.autoitx.com/images/common/back.gif
对的........... 对的...........
131738 发表于 2015-3-28 14:37 http://www.autoitx.com/images/common/back.gif
那你就不用逐行判断了,2#的表达式前面加个 (?m) 即可,即“Local $aSR = StringRegExp($str, '(?m)^\s*(_\V+\))\h*(?=\v|$)', 3)” 那你就不用逐行判断了,2#的表达式前面加个 (?m) 即可,即“Local $aSR = StringRegExp($str, '( ...
afan 发表于 2015-3-28 14:39 http://www.autoitx.com/images/common/back.gif
谢谢! 2# 正则通过....
因为还要判断其它行的文本, 暂时没有加 (?m).....
页:
[1]