Java中的正则表达式检测带有单反斜杠的字符串

时间:2012-09-21 15:18:32

标签: java expression

我正在研究正则表达式,我有一个问题。我需要一个正则表达式来检测错误字符串。一个正确的字符串不能包含单个反斜杠(\)但可以包含双反斜杠(\\),可以包含(\ t,\ r,\ f,\ b,...) 示例:正则表达式必须与此字符串匹配     '这是错误字符串\

2 个答案:

答案 0 :(得分:0)

你需要正确逃脱。使用\\\\匹配\\

答案 1 :(得分:0)

对于匹配正确的字符串,请尝试:

^((\\[tbnrt'"\\])|(\\u\d{4})|[^\\])+$

另一方面,你需要使用常量Pattern来避免每次重新编译表达式,如下所示:

private static final Pattern MY_PATTERN = 
              Pattern.compile("^((\\\\[tbnrt'\"\\\\])|(\\\\u\\d{4})|[^\\\\])+$");

并使用常量:

MY_PATTERN.matcher(testString).matches(); // true if don't have errors