当前位置: 首页 > 知识库问答 >
问题:

如何抓取多个重复群?

卜存
2023-03-14

我需要捕获相同模式的多个组。假设,我有以下字符串:

HELLO,THERE,WORLD

我写了以下模式

^(?:([A-Z]+),?)+$

我想让它做的是捕捉每一个单词,所以第一组是“你好”,第二组是“那里”,第三组是“世界”。我的正则表达式实际上捕获的只是最后一个,即“世界”。

我在这里测试我的正则表达式,我想将其与Swift一起使用(也许Swift中有一种方法可以以某种方式获得中间结果,以便我可以使用它们?)

更新:我不想使用拆分。我现在只需要知道如何捕获所有符合该模式的组,而不仅仅是最后一组。

共有3个答案

连坚白
2023-03-14

我想你需要这样的东西。。。。

b="HELLO,THERE,WORLD"
re.findall('[\w]+',b)

在Python3中会返回

['HELLO', 'THERE', 'WORLD']
宰父嘉胜
2023-03-14

关键区别在于重复捕获的组,而不是捕获重复的组。

正如您已经发现的,区别在于重复捕获的组只捕获最后一次迭代。捕获重复的组捕获所有迭代。

在PCRE(PHP)中:

((?:\w+)+),?
Match 1, Group 1.    0-5      HELLO
Match 2, Group 1.    6-11     THERE
Match 3, Group 1.    12-20    BRUTALLY
Match 4, Group 1.    21-26    CRUEL
Match 5, Group 1.    27-32    WORLD

由于所有捕获都在组1中,因此您只需要1美元进行替换。

我使用了此正则表达式的以下一般形式:

((?:{{RE}})+)

regex101中的示例

孙胜泫
2023-03-14

对于模式中的一个组,您只能在该组中获得一个确切的结果。如果您的捕获组被模式重复(您在周围的非捕获组上使用了量词),则仅存储与它匹配的最后一个值。

您必须使用语言的正则表达式实现函数来查找模式的所有匹配项,然后您必须删除非捕获组的锚和量词(您也可以省略非捕获组本身)。

或者,扩展您的正则表达式,并让模式包含每个要在结果中获得的组的一个捕获组:

^([A-Z]+),([A-Z]+),([A-Z]+)$
 类似资料:
  • 我有下面的代码,可以使用JSoup抓取网站,但我想同时抓取多个URL。我将URL存储在一个数组中,但无法使其工作。如果我想使用它,如何在多线程中实现这段代码?多线程对这样的应用程序有好处吗?

  • 我正在尝试使用tweet id抓取tweet文本,我的代码是: 输出为: selenium.webdriver.remote.webelement.WebElement(会话="7ca1c0e4c33d62a122bc51bbc171c7eb",元素="0.37665530454795326-1") 我如何打印文本在人类可读的格式?(在这种情况下:“前总统@比尔·克林顿在推特上呼吁延长攻击性武器禁

  • 本文向大家介绍.net 解决spider多次和重复抓取的方案,包括了.net 解决spider多次和重复抓取的方案的使用技巧和注意事项,需要的朋友参考一下 原因: 早期由于搜索引擎蜘蛛的不完善,蜘蛛在爬行动态的url的时候很容易由于网站程序的不合理等原因造成蜘蛛迷路死循环。 所以蜘蛛为了避免之前现象就不读取动态的url,特别是带?的url 解决方案: 1):配置路由 第一个参数是路由名称 第二个参

  • 我有上面的编码来提取使用硒 - 蟒蛇的href链接。我想提取每个人的个人资料“董事会成员”中的内容。我知道如何逐个提取它们,但不知道如何编写循环来执行此操作。 以下是我的代码: 任何想法都很感谢!

  • 问题内容: 我需要捕获相同模式的多个组。假设我有以下字符串: 我写了以下模式 我想做的是捕获每个单词,这样第1组是:“ HELLO”,第2组是“ THERE”,第3组是“ WORLD”我的正则表达式实际上只捕获了最后一个,即“世界”。 我正在这里测试我的正则表达式,我想与Swift一起使用它(也许Swift中有一种方法可以某种方式获取中间结果,以便我可以使用它们?) 更新:我不想使用。现在,我只需

  • 我想刮从多个网站与类似的网址的,如https://woollahra.ljhooker.com.au/our-team, https://chinatown.ljhooker.com.au/our-team和https://bondibeach.ljhooker.com.au/our-team. 我已经写了一个脚本,第一个网站的工作,但我不知道如何告诉它从其他两个网站刮。 我的代码: 有没有一种方