// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?is)(?#remove next set of parenthesis and content because its only for simulating automod)(^|\W|\b)(?<!player\.)(?<!blog\.)(?<!dev\.)(?<!link\.)(?<!affiliate\.)(?<!meetups\.)(?<!help\.)(?<!safety\.)(?<!devstatus\.)(?<!brand\.)(?<!sings\.)(?<!music\.)twitch\.tv\/(?!embed(\/|\b)|subs(\/|\b)|directory(\/|\b)|p\/|user(\/|\b)|legal(\/|\b)|admin(\/|\b)|login(\/|\b)|signup(\/|\b)|jobs(\/|\b)|videos(\/|\b)|collections(\/|\b)|downloads(\/|\b)|turbo(\/|\b)|store(\/|\b)|creatorcamp(\/|\b)|settings(\/|\b)|giftcard(\/|\b)|redeem(\/|\b)|broadcast(\/|\b)|partner(\/|\b)|bits(\/|\b)|prime(\/|\b))(\w+)\/?(?!\S)(?#remove next set of parenthesis and content because its only for simulating automod)($|\W|\b)").unwrap();
let string = "https://www.twitch.tv/miametzmusic
https://www.twitch.tv/miametzmusic
https://twitch.tv/summit1g
https://twitch.tv/summit1g/
https://www.twitch.tv/subsp00ky
https://www.twitch.tv/subsp00ky/
https://player.twitch.tv/js/embed/v1.js
https://player.twitch.tv/?channel=miametzmusic&parent=www.example.com
https://www.twitch.tv/embed/miametzmusic/chat?parent=www.example.com
https://www.twitch.tv/subs
https://www.twitch.tv/subs/miametzmusic
https://www.twitch.tv/directory
https://www.twitch.tv/directory/all/tags/classical
https://www.twitch.tv/miametzmusic/about
https://www.twitch.tv/miametzmusic/schedule
https://www.twitch.tv/miametzmusic/videos
https://www.twitch.tv/videos/1821013434
https://www.twitch.tv/videos/1821013434?t=00h00m13s
https://www.twitch.tv/collections/EwAtC1IWzhY3Ww
https://www.twitch.tv/videos/1277407565?collection=EwAtC1IWzhY3Ww
https://www.twitch.tv/videos/1277407565?collection=EwAtC1IWzhY3Ww&t=00h00m52s
https://player.twitch.tv/?collection=EwAtC1IWzhY3Ww&video=1277407565&parent=www.example.com
https://player.twitch.tv/?collection=EwAtC1IWzhY3Ww&video=1277407565&time=0h2m27s&parent=www.example.com
https://www.twitch.tv/p/giftcard/
https://www.twitch.tv/p/about
https://www.twitch.tv/p/en/about/
https://blog.twitch.tv/
https://blog.twitch.tv/en/
https://blog.twitch.tv/en/archive/2023/
https://dev.twitch.tv/
https://dev.twitch.tv/products/
https://www.twitch.tv/downloads
https://www.twitch.tv/jobs
https://www.twitch.tv/jobs/en/
https://www.twitch.tv/turbo
https://www.twitch.tv/store
https://www.twitch.tv/creatorcamp
https://www.twitch.tv/creatorcamp/en/paths/
https://www.twitch.tv/settings/security
https://link.twitch.tv/devchat
https://affiliate.twitch.tv/
https://meetups.twitch.tv/
https://meetups.twitch.tv/events
https://help.twitch.tv/
https://help.twitch.tv/s/article/getting-started-twitch-studio
https://www.twitch.tv/giftcard/buy?ref_=gc_twitch_landing
https://www.twitch.tv/redeem
https://safety.twitch.tv/
https://safety.twitch.tv/s/article/Usernames
https://devstatus.twitch.tv/
https://devstatus.twitch.tv/uptime
https://www.twitch.tv/broadcast/studio
https://brand.twitch.tv/
https://brand.twitch.tv/downloads/twitch-brand-assets.zip
https://www.twitch.tv/partner/signup
https://www.twitch.tv/bits
https://www.twitch.tv/prime
https://sings.twitch.tv/
https://music.twitch.tv/";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Rust, please visit: https://docs.rs/regex/latest/regex/