当前位置:  开发笔记 > 编程语言 > 正文

在RegExp中使用星号来提取由特定模式包围的数据

如何解决《在RegExp中使用星号来提取由特定模式包围的数据》经验,为你挑选了1个好方法。

我有一个由特定模式包含的信息组成的文本.我唯一知道的是模式:"$ {template.start}"和$ {template.end}为了简单起见,我将$ {template.start}和$ {template.end}替换为"a"例.

因此,案文中的一个条目是:

aINFORMATIONHEREa

我不知道这些条目中有多少是在文本中连接起来的.所以以下也是正确的:

aFOOOOOOaaASDADaaASDSDADa

我想写一个正则表达式来提取"a"所包含的信息.

我的第一次尝试是:

a(.*)a

只要文本中只有一个条目,它就可以工作.一旦有多个条目,就会因为.*匹配所有内容而失效.因此,使用a(.*)aon aFOOOOOOaaASDADaaASDSDADa只会产生一个捕获组,其中包含文本的第一个和最后一个字符"a"之间的所有内容:

FOOOOOOaaASDADaaASDSDAD

我想得到的是类似的东西

captureGroup(0):  aFOOOOOOaaASDADaaASDSDADa
captureGroup(1): FOOOOOO
captureGroup(2): ASDAD
captureGroup(3): ASDSDAD

能够从文本中提取每个条目并从每个条目中提取"a"之间包含的信息将是很棒的.顺便说一句,我正在使用Qt4的QRegExp类.

任何提示?谢谢!马库斯


之前已经看到过这个问题的多种变化.各种相关讨论:

正则表达式替换字符串中的所有\n,但不包括[code] [/ code]标记内的所有\n

使用正则表达式如何在不包含周围字符串的情况下找到由其他两个图案包围的图案?

使用RegExp匹配括号,然后递增它

正则表达式,用于在未被单引号或双引号括起时使用空格分割字符串

什么正则表达式将匹配文本,不包括HTML标记内的内容?

可能还有其他人......



1> cletus..:

只需使用非贪婪的表达式,即:

a(.*?)a

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有