当前位置: 首页 > 面试题库 >

如何捕获多个重复的组?

梁丘经艺
2023-03-14
问题内容

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

HELLO,THERE,WORLD

我写了以下模式

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

我想做的是捕获每个单词,这样第1组是:“ HELLO”,第2组是“ THERE”,第3组是“ WORLD”我的正则表达式实际上只捕获了最后一个,即“世界”。

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

更新:我不想使用split。现在,我只需要如何捕获与模式匹配的所有组,而不仅仅是最后一个。


问题答案:

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

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

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

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


 类似资料:
  • 我有一个字符串,可以通过以下方式格式化: 我试图(分别)捕获: 这是我的正则表达式:(也可能是,因为我不关心完整的捕获,只关心它的各个部分)。它捕获: 或(备用) 我不太明白如何让重复捕获组捕获所有单个实例,而不是整个事物,并且只是最后一个实例或只是最后一个实例。

  • 我有一个java gui应用程序,应该处理异常。这是我的程序的总体思想:它应该接受整数类型的输入。输入对话框应该引起一个异常,该异常应该被捕获并打印消息“坏数字”。但是,我的问题是,如果用户输入一个空字符串和/或错误的格式号,我怎么能得到重复的JPanelInput。此外,如果用户选择CANCEL选项,则跳出JOptionPane。 更新:

  • Try-catch旨在帮助处理异常。这意味着它将帮助我们的系统更加健壮:尝试从一个意外事件中恢复。 我们怀疑在执行and指令(发送消息)时可能会发生一些事情,因此它被封闭在try中。如果发生了几乎意想不到的事情,我们可以做一些事情:我们编写catch。我不认为我们打电话只是为了记录异常。我认为catch块是为了给我们从错误中恢复的机会。 现在,假设我们可以从错误中恢复,因为我们可以修复错误。再试一

  • 所以我的问题是: 基本上,我有一个方法,其中我抓住了一个WebApplication异常(javax.ws.rs.WebApplication),但我的方法是抛出NotFound异常(com.sun.jersey.api.NotFound异常)。 所以我想这样处理两者: 但是,我得到了以下编译时错误: 异常NotFoundException已被替代WebApplicationException捕获

  • 我需要捕获相同模式的多个组。假设,我有以下字符串: 我写了以下模式 我想让它做的是捕捉每一个单词,所以第一组是“你好”,第二组是“那里”,第三组是“世界”。我的正则表达式实际上捕获的只是最后一个,即“世界”。 我在这里测试我的正则表达式,我想将其与Swift一起使用(也许Swift中有一种方法可以以某种方式获得中间结果,以便我可以使用它们?) 更新:我不想使用拆分。我现在只需要知道如何捕获所有符合