re:compile/1
把一个正则表达式编译成一个正则匹配指令
用法:
1 | compile( Regexp ) -> {ok, MP } | {error, ErrSpec } |
把一个正则表达式编译成一个匹配模式的正则指令,参数 Regexp 可以是任意 Perl 风格的正则表达式,其效用跟 re:compile/2 的 re:compile(Regexp, []) 一样
获取 IP 的正则
1 | re:compile ( "\\d{1,3}\.\\d{1,3}\.\\d{1,3}\.\\d{1,3}" ). |
获取邮箱地址的正则
1 | re:compile ( "[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{2,3}" ). |
如果一个正则表达式多次使用到,那么把正则表达式预先编译是一种很高效的做法,可以有一次编译,多次重复调用的效果。
re:compile/1 经常跟 re:run/2、re:run/3、re:replace/3、re:replace/4、re:split/2、re:split/3 这几个正则函数搭配使用:
1 2 3 | {ok, MatchPattern } = re:compile ( "\\d{1,3}\.\\d{1,3}\.\\d{1,3}\.\\d{1,3}" ), re:run ( Url , MatchPattern , [{capture, first, list}]). |
1 2 | {ok, MatchPattern } = re:compile ( "[^A-Za-z]" ), re:replace ( "abcd123 *ef% 456gh**ijklmn~~~" , MatchPattern , "" , [global, {return, list}]). |
1 2 | Content = "sdfsdfsdf<!--more-->LJDSLFJDSLFJDSL" , re:split ( Content , "<!--more(.*?)?-->" , [{return, list}]) |