minterz 发表于 2010-9-28 22:07:19

求一个正则表达式。

本帖最后由 minterz 于 2010-9-28 22:25 编辑

各位高手,求一个正则表达式。
字符串是这样的:
"<p> abc1 de yu cd onr …… <p> abc2 de yu cd onr …… <p> abc3 de yu cd onr …… <p> abc4 de yu cd onr …… <p> abc5 de yu cd onr …… "
1 、匹配"> " 和 之后 第一个空格之间所有符合要求的字符串。
2、取得的字符串中间不能包含空格。

stringregexp($ss,'(?U)> (.+) ',3,1)
会取得很多个数组,但是我只要第一个不包含空格的字符串。

希望高手能支援下。。

afan 发表于 2010-9-28 22:14:17

$Str = '<p> abc de yu cd onr …… 后面还有很多个字符串'
$str = StringRegExpReplace($str, '(?s).+?>\h*([^\h]+).+', '$1')
Msgbox(0, '替换后', $str)

水木子 发表于 2010-9-28 22:18:00

只要有afan前辈在,一切将不再是问题。{:face (411):}

minterz 发表于 2010-9-28 22:24:56

谢谢,版主这个针对上面那个字符串是有效的,不过不符合我的要求
是我没说清楚。{:face (88):}
我本来要表达的意思是
字符串是这样的:
"<p> abc1 de yu cd onr …… <p> abc2 de yu cd onr …… <p> abc3 de yu cd onr …… <p> abc4 de yu cd onr …… <p> abc5 de yu cd onr …… "
要取出符合下面要求的所有的字符串
1 、匹配"> " 和 之后 第一个空格之间的字符串。
2、取得的字符串中间不能包含空格。
还请高手再支招。非常感谢。。

afan 发表于 2010-9-28 22:27:18

本帖最后由 afan 于 2010-9-28 22:29 编辑

>\h*([^\h]+)$Str = _
                '<p> abc1 de yu cd onr …… <p> abc2 de yu cd onr …… <p> abc3 d' & _
                'e yu cd onr …… <p> abc4 de yu cd onr …… <p> abc5 de yu cd on' & _
                'r ……'
Msgbox(0, '原字符串', $str)

$sR = StringRegExp($str, '>\h*([^\h]+)', 3)
#include <Array.au3>
_ArrayDisplay($sR, UBound($sR))

minterz 发表于 2010-9-28 22:30:44

>\h*([^\h]+)
afan 发表于 2010-9-28 22:27 http://www.autoitx.com/images/common/back.gif


    搞定,谢谢!!{:face (427):}

lsqyx528 发表于 2010-9-29 12:47:57

狂顶。。。

xjw417 发表于 2010-10-10 07:03:21

看看afan前辈回复的速度 ,小生佩服啊

liufenglg 发表于 2010-10-10 11:23:00

看看afan前辈回复的速度 ,小生佩服啊
xjw417 发表于 2010-10-10 07:03 http://www.autoitx.com/images/common/back.gif


    真是牛啊。我看着就头大
页: [1]
查看完整版本: 求一个正则表达式。