3
3
4
4
use memchr:: { memchr as find_char, memmem, memrchr as find_char_reverse} ;
5
5
use once_cell:: sync:: Lazy ;
6
- use regex:: { Regex , RegexSet } ;
6
+ use regex:: {
7
+ bytes:: Regex as BytesRegex , bytes:: RegexBuilder as BytesRegexBuilder ,
8
+ bytes:: RegexSet as BytesRegexSet , bytes:: RegexSetBuilder as BytesRegexSetBuilder , Regex ,
9
+ } ;
7
10
use serde:: { Deserialize , Serialize } ;
8
11
use thiserror:: Error ;
9
12
@@ -180,8 +183,8 @@ impl From<&request::RequestType> for NetworkFilterMask {
180
183
181
184
#[ derive( Debug , Clone ) ]
182
185
pub enum CompiledRegex {
183
- Compiled ( Regex ) ,
184
- CompiledSet ( RegexSet ) ,
186
+ Compiled ( BytesRegex ) ,
187
+ CompiledSet ( BytesRegexSet ) ,
185
188
MatchAll ,
186
189
RegexParsingError ( regex:: Error ) ,
187
190
}
@@ -191,11 +194,11 @@ impl CompiledRegex {
191
194
match & self {
192
195
CompiledRegex :: MatchAll => true , // simple case for matching everything, e.g. for empty filter
193
196
CompiledRegex :: RegexParsingError ( _e) => false , // no match if regex didn't even compile
194
- CompiledRegex :: Compiled ( r) => r. is_match ( pattern) ,
197
+ CompiledRegex :: Compiled ( r) => r. is_match ( pattern. as_bytes ( ) ) ,
195
198
CompiledRegex :: CompiledSet ( r) => {
196
199
// let matches: Vec<_> = r.matches(pattern).into_iter().collect();
197
200
// println!("Matching {} against RegexSet: {:?}", pattern, matches);
198
- r. is_match ( pattern)
201
+ r. is_match ( pattern. as_bytes ( ) )
199
202
}
200
203
}
201
204
}
@@ -1235,15 +1238,15 @@ pub(crate) fn compile_regex(
1235
1238
CompiledRegex :: MatchAll
1236
1239
} else if escaped_patterns. len ( ) == 1 {
1237
1240
let pattern = & escaped_patterns[ 0 ] ;
1238
- match Regex :: new ( pattern) {
1241
+ match BytesRegexBuilder :: new ( pattern) . unicode ( false ) . build ( ) {
1239
1242
Ok ( compiled) => CompiledRegex :: Compiled ( compiled) ,
1240
1243
Err ( e) => {
1241
1244
// println!("Regex parsing failed ({:?})", e);
1242
1245
CompiledRegex :: RegexParsingError ( e)
1243
1246
}
1244
1247
}
1245
1248
} else {
1246
- match RegexSet :: new ( escaped_patterns) {
1249
+ match BytesRegexSetBuilder :: new ( escaped_patterns) . unicode ( false ) . build ( ) {
1247
1250
Ok ( compiled) => CompiledRegex :: CompiledSet ( compiled) ,
1248
1251
Err ( e) => CompiledRegex :: RegexParsingError ( e) ,
1249
1252
}
0 commit comments