jieelin 发表于 2009-3-31 14:20:59

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

请教一下高手,我想在一个字符串里查找我想要的部分,使用StringRegExp函数的正则表达式该怎么写?

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

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

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

[ 本帖最后由 jieelin 于 2009-4-2 19:55 编辑 ]

xayle 发表于 2009-3-31 14:28:34

这个格式固定了?
用这个试试

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


[ 本帖最后由 xayle 于 2009-3-31 14:34 编辑 ]

xayle 发表于 2009-3-31 14:37:41

原帖由 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 14:52:27

基本上已经解决问题了.

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

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

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

[ 本帖最后由 jieelin 于 2009-3-31 15:21 编辑 ]

seominho 发表于 2009-3-31 16:12:06

这里() 的作用应该是你要获取的字符串就是()里头匹配的字符串
换句话说函数要返回的 字符串
$s=StringRegExp("[中国]人民解放军 abcdefghijklmn 解放了!", "\[中国\]\s+(.+)\s解放了!\", 3)
MsgBox(0,0,$s)
|这个嘛 我还没研究明白不懂得看看这个吧
http://www.maxxp.com.cn/au3/Autoit3CHS/html/functions/StringRegExp.htm

seominho 发表于 2009-3-31 16:21:14

要是有只有中国和美国的话
$s=StringRegExp("[中国] 人民解放军 abcdefghijklmn 解放了!", "\[(中国|美国)\]\s+(.+)\", 3)
MsgBox(0,0,$s)
这样的话 $s返回的是 中国
而$s返回的是 后面要取得字符串, 每个() 依照顺序 分别是 0,1,2,3。。

jieelin 发表于 2009-4-2 19:56:08

问题解决了。 谢谢各位。。
页: [1]
查看完整版本: 请教一个关于StringRegExp函数的问题