黑色袜子 发表于 2012-9-29 03:28:12

如何正则出最后一个字符串。(有例子)[已解决]

本帖最后由 黑色袜子 于 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)

user3000 发表于 2012-9-29 07:25:44

楼主对问题描述很不清晰呀, 又是靠近,又是长度未知...
请问:test(456】 不可以看作靠近end的字符串?
那么 test(456】?   6】???

hzxymkb 发表于 2012-9-29 07:32:50

昨晚还没有搞定?
我在群里不是叫你上传TXT文件了吗?

shqf 发表于 2012-9-29 09:27:20

本帖最后由 shqf 于 2012-9-29 09:28 编辑

#include <Array.au3>
$str="test【123】testtest(456】end"
$array=StringRegExp($str,'test.([^(test)]+).end',3)
_ArrayDisplay($array)

黑色袜子 发表于 2012-9-29 11:13:59

昨晚还没有搞定?
我在群里不是叫你上传TXT文件了吗?
hzxymkb 发表于 2012-9-29 07:32 http://www.autoitx.com/images/common/back.gif


    额。我没看到。估计那个时候睡觉了。

kevinch 发表于 2012-9-29 11:14:28

$str="test【123】testtest(456】end"
$arr=StringRegExp($str,"test(.*?)(?=test|end|$)",3)
If Not @error Then MsgBox(0,"",$arr)试下

黑色袜子 发表于 2012-9-29 11:22:34

突然发现4L的代码。没把(和】正则出来

黑色袜子 发表于 2012-9-29 12:05:24

试下
kevinch 发表于 2012-9-29 11:14 http://www.autoitx.com/images/common/back.gif


    经过测试。你的代码。无关最后的end 只要有test就会提取出来。比如$str="test【123】testtest(456】endtest【copy】"这样。【copy】也会出来。

黑色袜子 发表于 2012-9-29 12:26:53

回复 2# user3000


    我的意思是test(.*)end的字符串。要取的是靠近end的。不好意思。没表达清楚。

user3000 发表于 2012-9-29 17:58:14

回复 9# 黑色袜子

理解了. 4楼稍稍修改就可以了.

'test([^(test)]+)end'

kevinch 发表于 2012-9-29 19:53:41

$str="test【123】testtest(456】end"
$arr=StringRegExp($str,"test(.*?)(?=end)",3)
If Not @error Then MsgBox(0,"",$arr)那就是这样了,所谓最后一个,实在让人疑惑

love5173 发表于 2012-9-29 21:57:41

StringRegExp($str,'.*test(.*?)end',3)

love5173 发表于 2012-9-29 21:57:52

本帖最后由 love5173 于 2012-9-29 22:12 编辑

StringRegExp($str,'.*test(.*?)end',3)这个不是灌水的,网络卡点了两下{:face (319):}

fqvip1 发表于 2012-10-3 12:47:23

看描述,还是有诱惑力的。学习先

fhqbbfcu2050 发表于 2012-10-4 01:36:12

看看....看能不得出来不
页: [1]
查看完整版本: 如何正则出最后一个字符串。(有例子)[已解决]