在Java中识别并转义双引号,单引号和逗号

时间:2014-10-14 21:56:48

标签: java regex

抱歉,我找不到任何有用的东西,因此我问这个问题。我有一个基本的字符串,可以有脚(“),英寸(')或逗号(,)。我想要做的就是识别那些并在进一步处理之前将它们转义。没有任何运气与正则表达式,你可以告诉我我还不好。需要帮助。非常感谢!

1 个答案:

答案 0 :(得分:0)

有人在你的评论中暗示了它,但它并不完全正确,因为String#replace只需要一个字符,你想为替换提供多个字符。

假设您有一些函数foo()返回一些未正确转义的正则表达式,相对于" \"" char,或" \'"炭:

String regexp = Bar.foo();
regexp = regexp.replaceAll("(\\\"|\\\')", "\\\\$0");
Pattern yourPatternName = Pattern.compile(regexp);

一个小解释:在Java中,你需要转义某些特殊字符,例如n表示换行符(' \ n'),或t表示tab(' t' )。既然你已经逃脱了它们,它们就不再是字面上的字符' \'例如,+' n'所以,你需要第二次转义它们,这样在编译正则表达式时,Pattern#编译器会看到两个字符" \ n"而不是单个字符,这是换行符。逃避' \ n'当然,你需要把它放在一个新的' \'字符。由于我们正在执行java.lang.String,我们还需要再次转义该斜杠。

至于逗号,你不需要逃避它。您只需要转义特殊字符。有关Pattern识别的列表,您可以在此处查看:

  

http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html