我正在使用 java Pattern Matcher api 来搜索和替换字符串中的标记。我的字符串如下所示
Org Name: ${org_name}, Agent(s): ${agents}, OrgID: ${org_id}, ...
这里 ${string} 是我需要替换的模式。我使用如下正则表达式
${(org_name|agents|org_id)}
但是 Pattern.compile 抛出异常。如何转义此正则表达式中的特殊字符?还是有更好的方法来为这种情况编写正则表达式?
最佳答案
您需要转义大括号({
和 }
),在正则表达式模式中,这意味着量词;以及 $
符号,表示行尾。只需使用反斜杠:\
:
\$\{(org_name|agents|org_id)\}
如果它没有被解析为文字模式,而是被解析为字符串,您将需要使用 \\
:
\\$\\{(org_name|agents|org_id)\\}
尝试:
\\$\\{(org_(id|name)|agents)\\}
关于java - ${(stringToMatch)} 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38046949/