我需要捕获相同模式的多个组。假设,我有以下字符串:
HELLO,THERE,WORLD
我写了以下模式
^(?:([A-Z]+),?)+$
我想让它做的是捕捉每一个单词,所以第一组是“你好”,第二组是“那里”,第三组是“世界”。我的正则表达式实际上捕获的只是最后一个,即“世界”。
我在这里测试我的正则表达式,我想将其与Swift一起使用(也许Swift中有一种方法可以以某种方式获得中间结果,以便我可以使用它们?)
更新:我不想使用拆分。我现在只需要知道如何捕获所有符合该模式的组,而不仅仅是最后一组。
关键区别在于重复捕获的组,而不是捕获重复的组。
正如您已经发现的,区别在于重复捕获的组只捕获最后一次迭代。捕获重复的组捕获所有迭代。
在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中的示例
对于模式中的一个组,您只能在该组中获得一个确切的结果。如果您的捕获组被模式重复(您在周围的非捕获组上使用了量词),则仅存储与它匹配的最后一个值。
您必须使用语言的正则表达式实现函数来查找模式的所有匹配项,然后您必须删除非捕获组的锚和量词(您也可以省略非捕获组本身)。
或者,扩展您的正则表达式,并让模式包含每个要在结果中获得的组的一个捕获组:
^([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. 我已经写了一个脚本,第一个网站的工作,但我不知道如何告诉它从其他两个网站刮。 我的代码: 有没有一种方