REGEX

时间:2016-08-30 14:32:44

标签: java regex matcher

当我从文字正则表达式构建模式时以及从文件中读取正则表达式时,为什么我没有得到相同的行为?

String regex = "(?xi)(title)[\\.:;](.*) \043 Title property";
Pattern pattern = Pattern.compile(regex);
System.out.println(pattern);
// will print:
  

(?xi)(title)[。:;](。*)#Title property

当我尝试从遇到问题的文件中读取正则表达式时,此表达式仍然有效。 '\ 043'未替换为其正确的形式。为什么这样?

我试图避免使用文字'#'字符符号,从而使用和代替它,因为我的代码中存在其他冲突。

1 个答案:

答案 0 :(得分:0)

\043

......都过去了。

Java编译器将\043 转换为一个字符(“#”)。

如果您阅读的文件包含:

 assertEquals("\\043", stringFromFile);

...进入一个字符串,然后:

\

...将通过。如果您想在字符串中使用文字\,则需要使用其他{{1}}转义它。