Dot behavior in regex patterns

前端 未结 4 394
一生所求
一生所求 2021-01-14 18:25
Pattern p2 = Pattern.compile(\".*\");
Matcher m2 = p2.matcher(\"true\");
System.out.println(m2.matches() + \" [\" + m2.group() + \"]\");

When I use

4条回答
  •  佛祖请我去吃肉
    2021-01-14 18:48

    But I don't understand what is going on when I use this regexpr [.]*. It says me false.

    Because inside a character class, the dot loses its special meaning and will match a plain old dot (the . character).

    Outside of a character class the dot is a metacharacter that matches any character, excluding newlines (unless you use the Pattern.DOTALL modifier, of course).

    Or how to make a class of symbols with any characters without \n and \r.

    Use a negated character class:

     Pattern p2 = Pattern.compile("[^\\r\n]*");
    

    [^\r\n] means "match anything that's not a \r or a \n.

提交回复
热议问题