找回密码
 加入
搜索
查看: 4042|回复: 8

[效率算法] 求一个正则表达式。

  [复制链接]
发表于 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)
会取得很多个数组,但是我只要第一个不包含空格的字符串。

希望高手能支援下。。
发表于 2010-9-28 22:14:17 | 显示全部楼层
$Str = '<p> abc de yu cd onr …… 后面还有很多个字符串'
$str = StringRegExpReplace($str, '(?s).+?>\h*([^\h]+).+', '$1')
Msgbox(0, '替换后', $str)

评分

参与人数 2金钱 +30 贡献 +5 收起 理由
minterz + 5
水木子 + 30 学习啦!

查看全部评分

发表于 2010-9-28 22:18:00 | 显示全部楼层
只要有afan前辈在,一切将不再是问题。
 楼主| 发表于 2010-9-28 22:24:56 | 显示全部楼层
谢谢,版主这个针对上面那个字符串是有效的,不过不符合我的要求
是我没说清楚。
我本来要表达的意思是
字符串是这样的:
"<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、取得的字符串中间不能包含空格。
还请高手再支招。非常感谢。。
发表于 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))
 楼主| 发表于 2010-9-28 22:30:44 | 显示全部楼层
>\h*([^\h]+)
afan 发表于 2010-9-28 22:27



    搞定,谢谢!!
发表于 2010-9-29 12:47:57 | 显示全部楼层
狂顶。。。
发表于 2010-10-10 07:03:21 | 显示全部楼层
看看afan前辈回复的速度 ,小生佩服啊
发表于 2010-10-10 11:23:00 | 显示全部楼层
看看afan前辈回复的速度 ,小生佩服啊
xjw417 发表于 2010-10-10 07:03



    真是牛啊。我看着就头大
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-21 05:14 , Processed in 0.094764 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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