Rust regex 正则表达式在线测试工具 crates.io/crates/regex
正则表达式: e.g. (?P<key>\w+)=(?P<value>\w+) , \d{1,3}(\.\d{1,3}){3} , (?imsU)^hello.*world$
测试文本:
Replace:

本工具底层使用 crates.io/crates/regex, 是 Rust 最常用的正则表达式库,具有高性能、线性时间复杂度、Unicode 支持完善、不支持回溯、默认避免灾难性回溯(ReDoS)、API 简洁、线程安全等特点。

在页面中输入的正则会由 rust regex 真实的编译运行,并且可以观察对应方法(find、find_all、captures、split、test)的执行结果,以方便开发。

安装依赖(Cargo.toml):
[dependencies]
regex = "1"
基本使用
use regex::Regex;

fn main() {
    let re = Regex::new(r"\d+").unwrap();

    if let Some(m) = re.find("abc123xyz") {

        println!("{}", m.as_str());

        println!("{}", m.start());

        println!("{}", m.end());
    }
}
输出:
123
3
6
Flag说明示例
i忽略大小写(?i)abc
m多行模式,^ 和 $ 匹配每行(?m)^abc$
s允许 . 匹配换行(?s)a.*b
x忽略空白并允许注释(?x)a \s+ b
U交换贪婪/非贪婪模式(?U)a.*b
u启用 Unicode(默认开启)(?u)\w+
表达式说明示例
.匹配任意字符(默认不包含换行)a.c
\d匹配数字\d+
\D匹配非数字\D+
\w匹配单词字符(Unicode)\w+
\W匹配非单词字符\W+
\s匹配空白字符\s+
\S匹配非空白字符\S+
^匹配字符串开始^abc
$匹配字符串结束abc$
*匹配前一个表达式 0 次或多次a*
+匹配前一个表达式 1 次或多次a+
?匹配前一个表达式 0 次或 1 次colou?r
{n}匹配前一个表达式 n 次\d{4}
{n,m}匹配前一个表达式 n 到 m 次\d{2,6}
[abc]字符集合,匹配其中任意字符[abc]+
[^abc]排除字符集合[^0-9]
(abc)捕获组(\d+)
(?:abc)非捕获组(?:abc)+
(?P<name>abc)命名捕获组(?P<id>\d+)
a|b或运算cat|dog
\b单词边界\bword\b
\B非单词边界\Bing\B
\A匹配文本开始\Aabc
\z匹配文本结束abc\z
\p{Han}Unicode 字符分类\p{Han}+