Java regular expression value.split(“\\.”), “the back slash dot” divides by character?

后端 未结 2 1519
半阙折子戏
半阙折子戏 2020-12-13 09:45

From what I understand, the backslash dot (\\.) means one character of any character? So because backslash is an escape, it should be backslash backslash dot (

2条回答
  •  孤街浪徒
    2020-12-13 10:14

    My guess is that you are missing that backslash ('\') characters are escape characters in Java String literals. So when you want to use a '\' escape in a regex written as a Java String you need to escape it; e.g.

    Pattern.compile("\.");   // Java syntax error
    
    // A regex that matches a (any) character
    Pattern.compile(".");  
    
    // A regex that matches a literal '.' character
    Pattern.compile("\\.");  
    
    // A regex that matches a literal '\' followed by one character
    Pattern.compile("\\\\.");
    

    The String.split(String separatorRegex) method splits a String into substrings separated by substrings matching the regex. So str.split("\\.") will split str into substrings separated by a single literal '.' character.

提交回复
热议问题