请教一个关于StringRegExp函数的问题
请教一下高手,我想在一个字符串里查找我想要的部分,使用StringRegExp函数的正则表达式该怎么写?例如我要取这个字符串中的"人民解放军 abcdefghijklmn"部分:
[中国]人民解放军 abcdefghijklmn 解放了!
其中[]中的字符是可变的,但是始终会有"[]"括起来.
[ 本帖最后由 jieelin 于 2009-4-2 19:55 编辑 ] 这个格式固定了?
用这个试试
$s=StringRegExp("[中国]人民解放军 abcdefghijklmn 解放了!", "\s+(.+\s.+)\s", 3)
msgbox(0,0,$s)
[ 本帖最后由 xayle 于 2009-3-31 14:34 编辑 ] 原帖由 xayle 于 2009-3-31 14:28 发表 http://www.autoitx.com/images/common/back.gif
这个格式固定了?
用这个试试
$s=StringRegExp("[中国]人民解放军 abcdefghijklmn 解放了!", "\s+(.+\s.+)\s", 3)
msgbox(0,0,$s)
我说的是空格的位置还有变化吗?
这个也试试.
$s=StringRegExp("[中国]人民解放军 abcdefghijklmn 解放了!", "\]\s+(.+)\s", 3)
msgbox(0,0,$s)
[ 本帖最后由 xayle 于 2009-3-31 14:38 编辑 ] 基本上已经解决问题了.
不过还是想请问一下. () 在这里的做用是什么?
可否讲解详细一点~ 感激不尽.. 谢谢~
另外,如果我要匹配[]中的字符串只有是"中国"或者"美国"这两个字符才取我要的字符串,是"中国|美国"这样写吗? 是否要加(),但是加了()把"中国"或者"美国"这个字符串截取出来了,请高手指教?
[ 本帖最后由 jieelin 于 2009-3-31 15:21 编辑 ] 这里() 的作用应该是你要获取的字符串就是()里头匹配的字符串
换句话说函数要返回的 字符串
$s=StringRegExp("[中国]人民解放军 abcdefghijklmn 解放了!", "\[中国\]\s+(.+)\s解放了!\", 3)
MsgBox(0,0,$s)
|这个嘛 我还没研究明白不懂得看看这个吧
http://www.maxxp.com.cn/au3/Autoit3CHS/html/functions/StringRegExp.htm 要是有只有中国和美国的话
$s=StringRegExp("[中国] 人民解放军 abcdefghijklmn 解放了!", "\[(中国|美国)\]\s+(.+)\", 3)
MsgBox(0,0,$s)
这样的话 $s返回的是 中国
而$s返回的是 后面要取得字符串, 每个() 依照顺序 分别是 0,1,2,3。。 问题解决了。 谢谢各位。。
页:
[1]