Skip to content

Commit c17da26

Browse files
committed
refactor: use new regex::regex! macro
1 parent f4a4091 commit c17da26

1 file changed

Lines changed: 4 additions & 8 deletions

File tree

src/parsers.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
use std::sync::LazyLock;
2-
3-
static PROXY_REGEX: LazyLock<regex::Regex> = LazyLock::new(|| {
4-
let pattern = r"(?:^|[^0-9A-Za-z])(?:(?P<protocol>https?|socks[45]):\/\/)?(?:(?P<username>[0-9A-Za-z]{1,64}):(?P<password>[0-9A-Za-z]{1,64})@)?(?P<host_cidr>(?P<host>[A-Za-z][\-\.A-Za-z]{0,251}[A-Za-z]|[A-Za-z]|(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3})(?:\/1[6-9]|2[0-9]|3[0-2])?):(?P<port>[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(?:(?P<trailing>[^0-9A-Za-z])|$)";
5-
regex::Regex::new(pattern).unwrap()
6-
});
7-
81
pub fn proxy_captures(text: &str) -> impl Iterator<Item = regex::Captures<'_>> {
92
let mut start = 0;
103
std::iter::from_fn(move || {
11-
let captures = PROXY_REGEX.captures_at(text, start)?;
4+
let pattern = regex::regex!(
5+
r"(?:^|[^0-9A-Za-z])(?:(?P<protocol>https?|socks[45]):\/\/)?(?:(?P<username>[0-9A-Za-z]{1,64}):(?P<password>[0-9A-Za-z]{1,64})@)?(?P<host_cidr>(?P<host>[A-Za-z][\-\.A-Za-z]{0,251}[A-Za-z]|[A-Za-z]|(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3})(?:\/1[6-9]|2[0-9]|3[0-2])?):(?P<port>[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])(?:(?P<trailing>[^0-9A-Za-z])|$)"
6+
);
7+
let captures = pattern.captures_at(text, start)?;
128
let whole_match = captures.get(0)?;
139
start = captures
1410
.name("trailing")

0 commit comments

Comments
 (0)