如何正则出最后一个字符串。(有例子)[已解决]
本帖最后由 黑色袜子 于 2012-9-29 11:23 编辑$str=test【123】testtest(456】end怎样正则出(456】?
test123......这个循环次数未知。
(456】是字符串。长度未知。
最终的目的就是提取靠近end的字符串
4L代码#include <Array.au3>
$str="test【123】testtest(456】end"
$array=StringRegExp($str,'test.([^(test)]+).end',3)
_ArrayDisplay($array)6L代码$str="test【123】testtest(456】end"
$arr=StringRegExp($str,"test(.*?)(?=test|end|$)",3)
If Not @error Then MsgBox(0,"",$arr) 楼主对问题描述很不清晰呀, 又是靠近,又是长度未知...
请问:test(456】 不可以看作靠近end的字符串?
那么 test(456】? 6】??? 昨晚还没有搞定?
我在群里不是叫你上传TXT文件了吗? 本帖最后由 shqf 于 2012-9-29 09:28 编辑
#include <Array.au3>
$str="test【123】testtest(456】end"
$array=StringRegExp($str,'test.([^(test)]+).end',3)
_ArrayDisplay($array) 昨晚还没有搞定?
我在群里不是叫你上传TXT文件了吗?
hzxymkb 发表于 2012-9-29 07:32 http://www.autoitx.com/images/common/back.gif
额。我没看到。估计那个时候睡觉了。 $str="test【123】testtest(456】end"
$arr=StringRegExp($str,"test(.*?)(?=test|end|$)",3)
If Not @error Then MsgBox(0,"",$arr)试下 突然发现4L的代码。没把(和】正则出来 试下
kevinch 发表于 2012-9-29 11:14 http://www.autoitx.com/images/common/back.gif
经过测试。你的代码。无关最后的end 只要有test就会提取出来。比如$str="test【123】testtest(456】endtest【copy】"这样。【copy】也会出来。 回复 2# user3000
我的意思是test(.*)end的字符串。要取的是靠近end的。不好意思。没表达清楚。 回复 9# 黑色袜子
理解了. 4楼稍稍修改就可以了.
'test([^(test)]+)end' $str="test【123】testtest(456】end"
$arr=StringRegExp($str,"test(.*?)(?=end)",3)
If Not @error Then MsgBox(0,"",$arr)那就是这样了,所谓最后一个,实在让人疑惑 StringRegExp($str,'.*test(.*?)end',3) 本帖最后由 love5173 于 2012-9-29 22:12 编辑
StringRegExp($str,'.*test(.*?)end',3)这个不是灌水的,网络卡点了两下{:face (319):} 看描述,还是有诱惑力的。学习先 看看....看能不得出来不
页:
[1]