2013-03-06 42 views
2

我有一个类似的正则表达式: -在正则表达式字面替换字符在Java中

abc{some dynamic character}abc 

我想在运行时括号中替换的字符。这个动态字符可能是一个特殊字符(元字符,转义字符等)。

如何确保这个动态生成的正则表达式与通过静态放置此字符所写的正则表达式相同。 (像“ABC \\ NABC”

实施例: - 动态特性:'\n' 静态正则表达式:"abc\\nabc" 动态正则表达式应该是替换字符之后等于静态正则表达式。

回答

3

您可以使用Pattern类逃脱你的动态特性:

"abc" + Pattern.quote(dynamicCharacter) "abc" 
+0

注意'Pattern.quote'需要'String'所以如果'dynamicCharacter'实际上是一个'char'(因为它从出现问题),那么你需要'Pattern.quote(Character.toString(dynamicCharacter))' – 2013-03-06 14:52:57

+0

感谢您的快速回复..假设,我有一个非常复杂的正则表达式和2-3个变量来替代之间,那么我们应该使用'MessageFormat'来替换正则表达式中的变量。 – user1522820 2013-03-08 10:04:04