regex: bug fix about \w \W backslash chars (#11176)
							parent
							
								
									b72d1e5e86
								
							
						
					
					
						commit
						fb3671107e
					
				| 
						 | 
					@ -90,8 +90,8 @@ For example `\w` is the meta-char `w`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
A meta-char can match different types of characters.
 | 
					A meta-char can match different types of characters.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `\w` matches an alphanumeric char `[a-zA-Z0-9_]`
 | 
					* `\w` matches a word char char `[a-zA-Z0-9_]`
 | 
				
			||||||
* `\W` matches a non alphanumeric char
 | 
					* `\W` matches a non word char
 | 
				
			||||||
* `\d` matches a digit `[0-9]`
 | 
					* `\d` matches a digit `[0-9]`
 | 
				
			||||||
* `\D` matches a non digit
 | 
					* `\D` matches a non digit
 | 
				
			||||||
* `\s` matches a space char, one of `[' ','\t','\n','\r','\v','\f']`
 | 
					* `\s` matches a space char, one of `[' ','\t','\n','\r','\v','\f']`
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -127,7 +127,7 @@ fn is_alnum(in_char byte) bool {
 | 
				
			||||||
	if tmp <= 9 {
 | 
						if tmp <= 9 {
 | 
				
			||||||
		return true
 | 
							return true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if tmp == `_` {
 | 
						if in_char == `_` {
 | 
				
			||||||
		return true
 | 
							return true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return false
 | 
						return false
 | 
				
			||||||
| 
						 | 
					@ -159,6 +159,7 @@ fn is_not_digit(in_char byte) bool {
 | 
				
			||||||
	return !is_digit(in_char)
 | 
						return !is_digit(in_char)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
[inline]
 | 
					[inline]
 | 
				
			||||||
fn is_wordchar(in_char byte) bool {
 | 
					fn is_wordchar(in_char byte) bool {
 | 
				
			||||||
	return is_alnum(in_char) || in_char == `_`
 | 
						return is_alnum(in_char) || in_char == `_`
 | 
				
			||||||
| 
						 | 
					@ -168,6 +169,7 @@ fn is_wordchar(in_char byte) bool {
 | 
				
			||||||
fn is_not_wordchar(in_char byte) bool {
 | 
					fn is_not_wordchar(in_char byte) bool {
 | 
				
			||||||
	return !is_alnum(in_char)
 | 
						return !is_alnum(in_char)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[inline]
 | 
					[inline]
 | 
				
			||||||
fn is_lower(in_char byte) bool {
 | 
					fn is_lower(in_char byte) bool {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ match_test_suite = [
 | 
				
			||||||
	TestItem{"d.def",r"abc.\.[\w\-]{,100}",-1,0},
 | 
						TestItem{"d.def",r"abc.\.[\w\-]{,100}",-1,0},
 | 
				
			||||||
	TestItem{"abc12345.asd",r"abc.\.[\w\-]{,100}",-1,0},
 | 
						TestItem{"abc12345.asd",r"abc.\.[\w\-]{,100}",-1,0},
 | 
				
			||||||
	TestItem{"abca.exe",r"abc.\.[\w\-]{,100}",0,8},
 | 
						TestItem{"abca.exe",r"abc.\.[\w\-]{,100}",0,8},
 | 
				
			||||||
	TestItem{"abc2.exe-test_12",r"abc.\.[\w\-]{,100}",0,13},
 | 
						TestItem{"abc2.exe-test_12",r"abc.\.[\w\-]{,100}",0,16},
 | 
				
			||||||
	TestItem{"abcdefGHK",r"[a-f]+\A+",0,9},
 | 
						TestItem{"abcdefGHK",r"[a-f]+\A+",0,9},
 | 
				
			||||||
	TestItem{"ab-cd-efGHK",r"[a-f\-g]+\A+",0,11},
 | 
						TestItem{"ab-cd-efGHK",r"[a-f\-g]+\A+",0,11},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -138,6 +138,8 @@ match_test_suite = [
 | 
				
			||||||
	// test bcksls chars
 | 
						// test bcksls chars
 | 
				
			||||||
	TestItem{"[ an s. s! ]( wi4ki:something )", r"\[.*\]\( *(\w*:*\w+) *\)",0,31},
 | 
						TestItem{"[ an s. s! ]( wi4ki:something )", r"\[.*\]\( *(\w*:*\w+) *\)",0,31},
 | 
				
			||||||
	TestItem{"[ an s. s! ](wiki:something)", r"\[.*\]\( *(\w*:*\w+) *\)",0,28},
 | 
						TestItem{"[ an s. s! ](wiki:something)", r"\[.*\]\( *(\w*:*\w+) *\)",0,28},
 | 
				
			||||||
 | 
						TestItem{"p_p", r"\w+",0,3},
 | 
				
			||||||
 | 
						TestItem{"p_é", r"\w+",0,2},
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// Crazywulf tests (?:^|[()])(\d+)(*)(\d+)(?:$|[()])
 | 
						// Crazywulf tests (?:^|[()])(\d+)(*)(\d+)(?:$|[()])
 | 
				
			||||||
    TestItem{"1*1", r"(\d+)([*])(\d+)",0,3},
 | 
					    TestItem{"1*1", r"(\d+)([*])(\d+)",0,3},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue