找回密码
 加入
搜索
查看: 1248|回复: 6

请教一个关于StringRegExp函数的问题

[复制链接]
发表于 2009-3-31 14:20:59 | 显示全部楼层 |阅读模式
请教一下高手,我想在一个字符串里查找我想要的部分,使用StringRegExp函数的正则表达式该怎么写?

例如我要取这个字符串中的"人民解放军 abcdefghijklmn"部分:

[中国]  人民解放军 abcdefghijklmn 解放了![END]

其中[]中的字符是可变的,但是始终会有"[]"括起来.

[ 本帖最后由 jieelin 于 2009-4-2 19:55 编辑 ]
发表于 2009-3-31 14:28:34 | 显示全部楼层
这个格式固定了?
用这个试试

$s=StringRegExp("[中国]  人民解放军 abcdefghijklmn 解放了![END]", "\s+(.+\s.+)\s", 3)
msgbox(0,0,$s[0])


[ 本帖最后由 xayle 于 2009-3-31 14:34 编辑 ]
发表于 2009-3-31 14:37:41 | 显示全部楼层
原帖由 xayle 于 2009-3-31 14:28 发表
这个格式固定了?
用这个试试

$s=StringRegExp("[中国]  人民解放军 abcdefghijklmn 解放了![END]", "\s+(.+\s.+)\s", 3)
msgbox(0,0,$s[0])

我说的是空格的位置还有变化吗?
这个也试试.

$s=StringRegExp("[中国]  人民解放军 abcdefghijklmn 解放了![END]", "\]\s+(.+)\s", 3)
msgbox(0,0,$s[0])


[ 本帖最后由 xayle 于 2009-3-31 14:38 编辑 ]
 楼主| 发表于 2009-3-31 14:52:27 | 显示全部楼层
基本上已经解决问题了.

不过还是想请问一下. () 在这里的做用是什么?

可否讲解详细一点~ 感激不尽.. 谢谢~

另外,如果我要匹配[]中的字符串只有是"中国"或者"美国"这两个字符才取我要的字符串,是"中国|美国"这样写吗? 是否要加(),但是加了()把"中国"或者"美国"这个字符串截取出来了,请高手指教?

[ 本帖最后由 jieelin 于 2009-3-31 15:21 编辑 ]
发表于 2009-3-31 16:12:06 | 显示全部楼层
这里() 的作用应该是  你要获取的字符串就是()里头匹配的字符串  
换句话说  函数要返回的 字符串
$s=StringRegExp("[中国]  人民解放军 abcdefghijklmn 解放了![END]", "\[中国\]\s+(.+)\s解放了!\[END\]", 3)
MsgBox(0,0,$s[0])
|  这个嘛 我还没研究明白  不懂得看看这个吧
http://www.maxxp.com.cn/au3/Auto ... ns/StringRegExp.htm
发表于 2009-3-31 16:21:14 | 显示全部楼层
要是有  只有中国和美国的话
$s=StringRegExp("[中国] 人民解放军 abcdefghijklmn 解放了![END]", "\[(中国|美国)\]\s+(.+)\[END\]", 3)
MsgBox(0,0,$s[1])
这样的话 $s[0]  返回的是 中国
而$s[1]返回的是 后面要取得字符串  , 每个() 依照顺序 分别是 0,1,2,3。。
 楼主| 发表于 2009-4-2 19:56:08 | 显示全部楼层
问题解决了。 谢谢各位。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-6 07:25 , Processed in 0.069207 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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