sd007 发表于 2009-2-15 17:01:40

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

比如:我要将 aaa   bbb
  bbbccc
ccc ddd每一行的行首空格去掉
替换结果为aaa   bbb
bbbccc
ccc ddd用下面的代码只能匹配开头的空格,而不能替换其它行行首的空格,原因是正则式没有工作在多行模式,请问用什么办法解决?
$Value="    aaa   bbb"&chr(13)&chr(10)&"   bbbccc"&chr(13)&chr(10)&"ccc ddd"
MsgBox(48, "提示", ""&StringRegExpReplace($Value, "^\s+", "")&"",0)

[ 本帖最后由 sd007 于 2009-2-15 17:15 编辑 ]

sd007 发表于 2009-2-15 19:25:35

我暂时用循环的方法解决,但我觉得不理想,如果用正则式能取得行首,只要一句代码就能解决,请高手指教!

#include <Array.au3>

$Value = "    aaa   bbb"&chr(13)&chr(10)&"   bbbccc"&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

也只能如此了。循环解决

pcbar 发表于 2009-2-16 11:06:42

$Value="    aaa   bbb"&chr(13)&chr(10)&"   bbbccc"&chr(13)&chr(10)&"ccc ddd"
MsgBox(48, "提示", ""&StringRegExpReplace($Value, "^\s+|\n\s+", "")&"",0)

make2855 发表于 2009-2-16 11:13:01

pcbar大师的正则表达式是没得说了

lynfr8 发表于 2009-7-22 01:06:08

如此好贴,居然现在才发现..
pcbar的正则真是巧夺天工!

zmj2008 发表于 2010-1-4 07:59:35

能去空格吗?

nansen 发表于 2010-3-5 20:17:19

本帖最后由 nansen 于 2010-3-5 20:19 编辑

(?m)是多行模式$Value="    aaa   bbb"&chr(13)&chr(10)&"   bbbccc"&chr(13)&chr(10)&"ccc ddd"
MsgBox(48, "提示", ""&StringRegExpReplace($Value, "(?m)^\s+", "")&"",0)

zmj2008 发表于 2010-3-12 05:56:33

学习了真好

kxing 发表于 2010-5-8 07:51:23

学习了,积累~~~

xiaochuan 发表于 2010-5-8 11:50:11

学习。。。。
页: [1]
查看完整版本: AU3的正则式怎么匹配每一行的行首