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

正则表达式仅匹配第一个子字符串

田焕
2023-03-14

我有一根这样的绳子

余额:“5048543747”,余额:“5119341413”,帐号:“0001000918”,

我使用了REGEX

(.*?),

结果我收到的第一个子字符串

余额:“5048543747”

实际上,我想要得到的结果是数组包括

{

余额:“5048543747”

Baldefovd:“5119341413”

账号:“0001000918”

}

有人能帮我吗。多谢。

编辑

我使用的代码

Pattern Pattern=Pattern.compile(“(.*?),”);

Matcher Matcher=pattern.Matcher(“balance:\”5048543747\“,baldefovd:\”5119341413\“,acctno:\”0001000918\“,”);

if(matcher.find())

{

system.out.println(“found:”+matcher.group(1));

}

收到结果I'V

余额:“5048543747”

共有1个答案

沈运恒
2023-03-14

请尝试以下代码:

String input = "BALANCE:\"5048543747\",BALDEFOVD:\"5119341413\",ACCTNO:\"0001000918\",";
String pattern = "(.*?),";
Pattern r = Pattern.compile(pattern);

List<String> matches = new ArrayList<String>();
Matcher m = r.matcher(input);
while (m.find()) {
    matches.add(m.group(1));
}

在看到一个注释后,对您来说,只使用逗号拆分字符串可能会更容易。

 类似资料:
  • 问题内容: 我想获得正则表达式的第一场比赛。 在这种情况下,我得到了一个列表: [‘33’,‘44’] 我可以提取列表的第一个元素: ‘33’ 但这仅在至少有一个匹配项的情况下有效,否则我将收到错误消息: IndexError:列表索引超出范围 在这种情况下,我可以定义一个函数: 是否有一种无需定义新功能即可获得该结果的方法? 问题答案: 您可以通过添加默认值到您的正则表达式中: 也可以与其他人指

  • 问题内容: 如何匹配“ Hello world”或“ Hello World”形式的句子。该句子可能包含“-/数字0-9”。任何信息对我都会非常有帮助。谢谢。 问题答案: 这将做得很好。我对句子的定义:句子以非空格开头,以句点,感叹号或问号(或字符串结尾)结尾。标点符号后可能会有一个结束语。 这是输出: 正确地匹配所有这些(最后一个句子没有结尾标点符号),看起来似乎并不那么容易!

  • 问题内容: 我正在尝试为下面的示例文本构建一个正则表达式,在其中我需要替换 粗体 文本。到目前为止,我可以实现这一点, 那就是选择第一个和最后一个pip char之间的整个字符串。我一定要使用apache或java regex。 示例字符串:管道之间的文本长度可能会有所不同 问题答案: 要在出现管道后匹配零件,可以使用此正则表达式: 在这里n = 3 它将与匹配的#1组匹配 正则演示

  • 我需要使用通配符类型搜索筛选一组字符串,如下所示: 寻找应该匹配你好,但不是Helo 查找应该匹配"pant"和"想要"但不匹配"ant" 寻找应该匹配"吉普赛人"和"典型" 代表一个或多个字符。我不介意手写或基于正则表达式的搜索。有什么想法吗?典型的。NET方法的通配符匹配0或更多,但我需要1个或更多字符。我该怎么做?

  • 我试图使用正则表达式来检查字符串中的第一个和最后一个字符是否是a-z之间的字母字符。 我知道这与第一个字符匹配: 但是我如何检查最后一个字符呢? 这: 不起作用。我怀疑这两个条款之间应该有什么区别,但我不知道是什么!

  • 我想用正则表达式解析一个字符串,字符串的例子是 罗得:他说:你不能通过 我想将作为一个组捕获,并且。然而,当我使用我的模式时,它返回 和 他说:你不应该使用正则表达式传递吗?