re:run/3
根据正则表达式去匹配数据并返回匹配结果
用法:
run(Subject,RE,Options) -> {match, Captured} | match | nomatch
执行一个正则匹配,匹配成功则返回 {match, Captured},否则返回一个 nomatch 的原子。参数 RE 可以是正则字符串,也可以是用 re:compile/1 或 re:compile/2 预编译过的正则匹配指令。参数 Options 是一个匹配选项参数。
如果编译正则表达式时发生了异常错误,只会返回一个 badarg 的提示,错误的详细定位信息可以通过 re:compile/2 方法来查看
缺省第三个参数的情况下,返回的 Captured 值会包含匹配结果的开始的位置和匹配结果的长度,例如下面返回的是 [{2,1}],表示匹配结果在第 2 个字符后出现,匹配结果值的长度是 1。
re:run("just a test!", "s").
添加一个 global 参数,把所有匹配结果的匹配出来
re:run("just a test!", "s", [global]).
把第一个匹配结果以字符串的形式截取下来
re:run("just a test!", "s", [{capture, first, list}]).
把所有结果截取下来,并以字符串的形式返回
re:run("just a test!", "s", [global, {capture, all, list}]).
字符串里是否存在某个字符:
re:run("abc'defg", "j|k|'|m", [{capture, none}]).
一些常用例子:
匹配 IP:
re:run("HostName 107.170.96.117", "(\\d{1,3}\\.){3}\\d{1,3}", [{capture, first, list}]).