找回密码
 加入
搜索
查看: 2629|回复: 10

AU3的正则式怎么匹配每一行的行首

  [复制链接]
发表于 2009-2-15 17:01:40 | 显示全部楼层 |阅读模式
比如:我要将
 aaa   bbb
  bbb  ccc
ccc ddd
每一行的行首空格去掉
替换结果为
aaa   bbb
bbb  ccc
ccc ddd
用下面的代码只能匹配开头的空格,而不能替换其它行行首的空格,原因是正则式没有工作在多行模式,请问用什么办法解决?
$Value="    aaa   bbb"&chr(13)&chr(10)&"   bbb  ccc"&chr(13)&chr(10)&"ccc ddd"
MsgBox(48, "提示", ""&StringRegExpReplace($Value, "^\s+", "")&"",0)


[ 本帖最后由 sd007 于 2009-2-15 17:15 编辑 ]
 楼主| 发表于 2009-2-15 19:25:35 | 显示全部楼层
我暂时用循环的方法解决,但我觉得不理想,如果用正则式能取得行首,只要一句代码就能解决,请高手指教!

#include <Array.au3>

$Value = "    aaa   bbb"&chr(13)&chr(10)&"   bbb  ccc"&chr(13)&chr(10)&"ccc   ddd"
$arr_a = StringSplit($Value, chr(13)&chr(10), 1)
For $i=1 To UBound($arr_a)-1
        $arr_a[$i] = StringRegExpReplace($arr_a[$i], "^\s+", "", 0)
next
MsgBox(48, "提示", _ArrayToString($arr_a,chr(13)&chr(10),1,UBound($arr_a)-1)        ,0)
发表于 2009-2-15 20:45:33 | 显示全部楼层
也只能如此了。循环解决
发表于 2009-2-16 11:06:42 | 显示全部楼层
$Value="    aaa   bbb"&chr(13)&chr(10)&"   bbb  ccc"&chr(13)&chr(10)&"  ccc ddd"
MsgBox(48, "提示", ""&StringRegExpReplace($Value, "^\s+|\n\s+", "")&"",0)

评分

参与人数 1贡献 +2 收起 理由
lynfr8 + 2 精品文章

查看全部评分

发表于 2009-2-16 11:13:01 | 显示全部楼层
pcbar大师的正则表达式是没得说了
发表于 2009-7-22 01:06:08 | 显示全部楼层
如此好贴,居然现在才发现..
pcbar的正则真是巧夺天工!
发表于 2010-1-4 07:59:35 | 显示全部楼层
能去空格吗?
发表于 2010-3-5 20:17:19 | 显示全部楼层
本帖最后由 nansen 于 2010-3-5 20:19 编辑

(?m)是多行模式
$Value="    aaa   bbb"&chr(13)&chr(10)&"   bbb  ccc"&chr(13)&chr(10)&"ccc ddd"
MsgBox(48, "提示", ""&StringRegExpReplace($Value, "(?m)^\s+", "")&"",0)
发表于 2010-3-12 05:56:33 | 显示全部楼层
学习了  真好
发表于 2010-5-8 07:51:23 | 显示全部楼层
学习了,积累~~~
发表于 2010-5-8 11:50:11 | 显示全部楼层
学习。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-6 10:10 , Processed in 0.103548 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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