| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 504 人关注过本帖
标题:求正则表达式语句,提取两个单词之间的内容
取消只看楼主 加入收藏
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
结帖率:63.64%
收藏
已结贴  问题点数:20 回复次数:3 
求正则表达式语句,提取两个单词之间的内容
例如:
Begin ABC Begin 这里是我要提取的内容 End BBB End;

红色字体是我提取的内容,即:提取“Begin”...“End”之间的部分?
关键问题是“Begin”...“End”的前面还有嵌套,对我有些难度,希望大家帮我,谢谢!!!
搜索更多相关主题的帖子: 表达式 
2013-01-15 11:04
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
收藏
得分:0 
谢谢版主
我知道用其它方法也可以解决。比如用“InStr”函数,或者用您提供的方法。
但我更希望用正则表达式(有点不死心,哈哈),因为正则的代码比较简单。
但是在VB6中用正则,它好像不能识别嵌套的情况,它总是把第一次出现“Begin”到第一次出现“End”之间的内容提取出来,
即,“Begin ABC Begin 这里是我要提取的内容 End”这显然不是我要的结果。
我就是想问一下大家,在VB6中用正则,如何解决嵌套的问题?
2013-01-16 09:25
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
收藏
得分:0 
朋友你好:
就以三楼的帖子为例:把“Begin”换成“then”;把“End”换成“End If”;即匹配 then ... ...End if 之间的内容;
... ...
if ucase(s2(i)="END" then
     if w1>-1 then
        w2=i
        exit for
     end if
  end if
... ...
这段代码有两层的then嵌套,而我需要匹配最内层的then。
我要是用: RegExp.Pattern = "then[\s\S]+?end if",显然是错误的,它出现的结果是:
程序代码:
then
     if w1>-1 then
        w2=i
        exit for
     end if

或者可以换一种问法:例如:
STR = "15*(3+(5*(15+28)))"
在上面的子串中,我要匹配最里层的那一个括号,即:(15+28),该怎么做?

说明一点,用其它方法也可以达到目的,我只是觉得用正则有时很方便,代码简单。只不过在VB6中用正则处理嵌套的情况时有一些缺憾,不知道有没有办法可以改善。谢谢



[ 本帖最后由 William1949 于 2013-1-16 11:40 编辑 ]
2013-01-16 11:39
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:111
专家分:0
注 册:2009-3-17
收藏
得分:0 
谢谢7楼的朋友
跟我的想法差不多,我也是用“InStr”函数来做,能达到预期的结果;
只不过我在学习正则表达式的时候,有一段说明:如下:
... ...
例如,你可能要搜索一个 HTML 文档来查找一处包含在 H1 标记中的章节标题。在文档中该文字可能具有如下形式:
<H1>Chapter 1 – Introduction to Regular Expressions</H1>
下面的表达式匹配从开始的小于号 (<) 到 H1 之后的(>)之间的所有内容。
"<.*?>"
... ...
我在想如果<>之间出现嵌套的情况时,该怎么办,还能用正则吗?例如:
<H1<ABC>H1>Chapter 1 – Introduction to Regular Expressions</H1>

是:VB6的正则表达式 能力有限,达不到我的要求?
还是:我不得其法,不会使用正则?
希望在这方面精通的朋友 指点!!!

[ 本帖最后由 William1949 于 2013-1-16 13:28 编辑 ]
2013-01-16 13:14
快速回复:求正则表达式语句,提取两个单词之间的内容
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012252 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved