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