xms77 发表于 2012-2-16 13:11:42

求助正则替换问题【已解决】

本帖最后由 xms77 于 2012-2-16 22:17 编辑

用正则替换,替换后少了回车,不知道怎么回事?
代码如下:Local $text =   "OsMode=1" & @CRLF & _
                                "OpenFile1=" & @CRLF & _
                                "OpenFile1=" & @CRLF & _
                                "OpenFile2=" & @CRLF & _
                                "OpenFile3=" & @CRLF & _
                                "OpenFile4=" & @CRLF & _
                                "OnOffDelay_Bin1=1000.00" & @CRLF & _
                                "OnOffDelay_Bin2=1000.00" & @CRLF & _
                                "OnOffDelay_Bin3=1000.00" & @CRLF & _
                                "LEFT_CYL_SENSOR_SIGNAL_ENABLE=false" & @CRLF & _
                                "RIGHT_CYL_SENSOR_SIGNAL_ENABLE=true"
MsgBox(0,"original text", $text)
$temp = StringRegExpReplace($text, '(LEFT_CYL_SENSOR_SIGNAL_ENABLE=.+)\n', "LEFT_CYL_SENSOR_SIGNAL_ENABLE=TRUE", 1)
If Not @error Then MsgBox(0,"after replacing text",$temp)

afan 发表于 2012-2-16 13:31:43

$temp = StringRegExpReplace($str, '(LEFT_CYL_SENSOR_SIGNAL_ENABLE=)\V+', '$1true')

xms77 发表于 2012-2-16 13:39:14

回复 2# afan
afan大大真是快,出手如电,快很准!几秒钟搞定我试了1个小时还搞不定问题,感谢!

xms77 发表于 2012-2-16 13:41:23

回复 2# afan
查了下帮助文档,\V 任何一个不是垂直空白字符的字符. 不懂‘垂直’是什么意思?

afan 发表于 2012-2-16 13:43:13

回复afan
afan大大真是快,出手如电,快很准!几秒钟搞定我试了1个小时还搞不定问题,感谢!
\V 任何一 ...
xms77 发表于 2012-2-16 13:41 http://www.autoitx.com/images/common/back.gif


    就是“回车、换行”的意思,回车换行可以表达为“\v”,非的话就是“\V”了

benkel 发表于 2012-2-16 13:48:18

回复 2# afan

A版的正则能力比犀牛还牛,啥子时候我能有1/10就好了撒……

xms77 发表于 2012-2-16 14:56:03

上面怎么回事啊?回复按钮点了几次没有反应,结果重复了这么多楼,哎,我不是故意的

liongodmien 发表于 2012-2-16 20:57:42

LZ 牛角了!

既然要替换的文字这么确定,就只为将‘false’替换为‘true’,直接用stringreplace更好,无论从代码的复杂性,还是代码的效率上讲,都好些。

如果是为了学习,那再复杂点也没什么,只是编程要注意复杂事情简单化的好。

xms77 发表于 2012-2-16 21:39:18

本帖最后由 xms77 于 2012-2-16 21:40 编辑

回复 8# liongodmien
不是所有的false替换为true,文本中有很多False和True,但是只需要替换特定位置的,所以我用了正则替换,我上面的文本只是一小段而已,呵呵,让你误解了,呵呵,抱歉!
页: [1]
查看完整版本: 求助正则替换问题【已解决】