difference between [a-z] and [\a-z]. The first one does not contain space ' ' in the range but the second one is matching for space ' '. Why??
            Asked
            
        
        
            Active
            
        
            Viewed 106 times
        
    -2
            
            
         
    
    
        Barmar
        
- 741,623
- 53
- 500
- 612
 
    
    
        Kenny Omega
        
- 398
- 2
- 12
- 
                    Because `\a` = ASCII code 7 – Lucas Trzesniewski Jan 12 '18 at 10:46
- 
                    ... and the characters from code 7 to character z (code 122) include the space and other characters. – Andy G Jan 12 '18 at 10:48
- 
                    1One of you should post that as an answer. – Barmar Jan 12 '18 at 10:48
2 Answers
1
            
            
        [a-z] matches a character from a to z 
[\a-z] matches a character from \a to z 
\a is not a. According to regex101.com \a matches the bell character (ASCII 7). I don't know what this character is but it looks like whitespace.
 
    
    
        JackPRead
        
- 178
- 8
1
            
            
        \a is ASCII code 7 (bell). a-z would be the range of characters a through z.
So \a-z is the range of characters from \a to the character z (index 122) which includes the space character (and many others).
An ascii table confirms the range of characters covered.
If you wanted to allow for a backslash in addition to the characters a through z, then use [a-z\\] (the backslash needs to be escaped). [I moved it to the end as I find this version clearer.]
 
    
    
        Andy G
        
- 19,232
- 5
- 47
- 69