答案 0 :(得分:1)
作为文字输入的Java正则表达式中的转义序列的问题是它们被解释两次:
这样做的一个重要结果是必须转义表达式中的每个斜杠才能使它通过Java编译阶段进入正则表达式编译阶段:
Pattern REGEX = Pattern.compile("^([a-z]*|\\*)\\.([a-z]*)\\.([a-z]*)");
这可能不是最易读的解决方案,因此另一种方法是使用字符类代替转义的单个字符:
Pattern REGEX = Pattern.compile("^([a-z]*|[*])[.]([a-z]*)[.]([a-z]*)");
答案 1 :(得分:0)
\
是java中的转义字符。为避免这种情况,您必须在代码中添加额外的\
,如下所示:
Pattern REGEX = Pattern.compile("^([a-z]*|\\*)\\.([a-z]*)\\.([a-z]*)");
文档:Characters