java - 正则表达式 - 捕获大括号之间的增量数字

标签 java regex

我有一段代码尝试在循环内重复匹配具有递增索引的模式:

for(int count = 0; count < args.length; count++) {
        message.replaceFirst("^\\{" + count + "\\d}$", args[count]);
    }

我想要做的是将消息字符串中出现的 {0}、{1} 等替换为 args 中的内容。但尽我所能,我就是无法让模式匹配。我不是正则表达式专家,但我根据此处的其他问题尝试了各种正则表达式组合。我也尝试过使用StringUtils中的replace方法,但没有成功。有人可以提供任何建议吗?

最佳答案

根本不要使用正则表达式。您事先知道您的搜索字符串并且它是常量(即您可以从常量字符串加上变量 count 构建它),因此不需要合并正则表达式。

关于java - 正则表达式 - 捕获大括号之间的增量数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7972866/

相关文章:

java - 将多次出现的特殊字符替换为单个字符

php - 在 PHP 中用于 preg_replace 的分隔符(替换在 PHP 之外但不在 PHP 内部的工作)

r - 计算 r 中一组单词的出现次数

java - eclipse 错误:unresolved compilation

java - Android:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'java.lang.String java.lang.Object.toString()'

java - modelAndView返回后执行任务

c# - 正则表达式使用 C# 限制只出现一次左括号和右括号

java - 为什么将布局设置为 BorderLayout 意味着永远不会调用 paintComponent

java - 如何避免不必要的计算寻找最大独立集?

ruby-on-rails - 从特定字符串中提取信息