java - 使用正则表达式获取重复模式

标签 java regex

如果我有这个输入字符串:{post:[matt]}

我想获取“matt”当前所在的字符串,我会使用这个:

Pattern pattern = Pattern.compile("^\\{(.+):[(.+)]\\}$")
Matcher matcher = pattern.matcher("{post:[matt]}");
    if(matcher.matches()) {
        // pattern matches input string
        String str1 = matcher.group(2);

但是如果我有一个像这样的字符串:{post:[matt,13-mar-2011,hello]}

如何获取字符串“matt”、“13-mar-2011”和“hello”——当它们的数量可能不同时?如果只有 3 个就很容易了。

最佳答案

你可以尝试查找功能,它应该找到下一个匹配项,下一个和下一个...... 我不知道你是否需要修改你的模式。

matcher.find()

关于java - 使用正则表达式获取重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292384/

相关文章:

java - java中数组索引越界

java - 在 Jmeter 中动态更改 JDBC 配置

java - (Java) RegEx 从 CSS 获取 URLs?

c++ - 使用 boost 正则表达式提取所有破折号分隔的数字

regex - XML 模式中正则表达式的正确语法

java - 如何在 Netbeans IDE 之外运行数据库程序?

java - 使用 Jackson 将 JSON 数组反序列化为 Map

正则表达式提取数字和尾随字母或空格

JavaScript 正则表达式 : Get HTML Tags

java - 设置 log4j 日志级别