Java 正则表达式与精确标记有关的问题

标签 java regex string

在我的 Java 应用程序中,我有一个“模板字符串”,例如“此记录的名称是:%%%NAME%%%。

我想循环遍历一个列表,并为每次迭代打印出此模板的“自定义版本”,该模板将 %%%NAME%%% 标记字符串替换为有意义的值。例如:

List<String> strNamesList = getNamesSomehow();
String strTemplate = "This record's name is : %%%NAME%%%.";
String strCustomized = "";
for(int i = 0; i < strNamesList.size(); i++)
{
    strCustomized = strTemplate.replaceFirst(strSomeRegex, strNamesList.get(i));
    System.out.println(strCustomized);
}

与往常一样,我被 strSomeRegex 噎住了。我只需要一个与确切短语匹配的正则表达式:

%%%NAME%%%

我搜索过 Google、Binged、维基百科等等。搜索“精确匹配正则表达式”(及其类似内容)会返回各种结果,但这些都不能帮助我处理包含标点符号(百分号)的标记。

正则表达式只是每次都让我困扰的事情之一,这是我最后的手段。

感谢任何好心的 StackOverflowers 可以为我指明正确的方向!

最佳答案

java 有一个函数可以引用正则表达式中的字符串 java.util.regex.Pattern.quote(string)

它的作用是用 \Q\E 包围字符串(将 \E 替换为 \E\\E根据需要在字符串中添加\Q)

在您的示例中“\\Q%%%NAME%%%\\E”即可

关于Java 正则表达式与精确标记有关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110456/

相关文章:

java - 从 PHP 调用 jar

regex - 引用-此正则表达式是什么意思?

c - 检查输入是否为字符串的更好方法是什么?

c# - 使用 is 运算符比较两个字符串

java - 使 2 个 JButtons 大小相等

java - 将坏词保留到数据库实体中的最佳方法是什么?

javascript - HTML5 输入类型=时间的正则表达式

C - 将字符串数组作为函数参数传递

java - @ControllerAdvice 不允许显示 Swagger UI

java - 在java中使用正则表达式提取html语法中两个单词之间的字符串