0

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

4

2 回答 2

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
于 2012-09-21T16:52:55.543 回答
0

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

于 2012-09-21T15:26:10.403 回答