${(stringToMatch)} 的正则表达式
regex for ${(stringToMatch)}
我正在使用 java 模式匹配器 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 模式匹配器 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)\}