erlang re正则表达式模块
{_,P}=re:compile("[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-z]{2,3}"). 或者 {_,P}=re:compile("[a-zA-Z0-9]+@[a-zA-Z0-9]+[.][a-z]{2,3}"). re:run("E-mail: xyz@pdq.com",P). re:run("E-mail: xyz@pd0q@we.com",[{12,11}]} re:split("E-mail: xyz@pdq.com"," ").
———————————————————————————————— 分割线 ——————————————————————————————————————
应用于字符串的正则表达式函数。 1导出函数String=RegExp=string()
在字符串String中寻找正则表达式RegExp的第一个最长的匹配。搜索最长可能匹配,如果几个结果相同则返回第一个。返回如下:
寻找第一个匹配,通常比 match 更快,并确定匹配的存在与否。返回值同 match 。
|
c | 非特殊意义的字母c |
c | 匹配转码序列或字面上的c |
. | 匹配任意字符 |
^ | 字符串开头 |
$ | 字符串结尾 |
[abc…] | 字符类,即指定字符组成的集合。字符范围是两个字符用 - 连接 |
[^abc…] | 否定字符类,不匹配集合中的字符 |
r1 | r2 | 轮流,匹配r1或r2 |
r1r2 | 串联,匹配r1并且r2 |
r+ | 匹配一个或更多的r |
r* | 匹配零个或多个的r |
r? | 匹配零个或一个的r |
|
分组,匹配r |
转码序列允许等同于Erlang字符串:
b | 退格 |
f | 换页(form feed) |
n | 换行(line feed) |
r | 回车 |
t | TAB |
e | escape ESC |
v | 纵向TAB |
s | 空格 |
d | 删除 |
ddd | 八进制值ddd |
c | 任何除了上面字符以外的,如或” |
可以让这些函数工作的更方便,比如在 io:get_line 中读取新行,当然字符 $ 也会匹配 “…n” 。如下例子时Erlang一些数据类型的正则表达式:
Atoms | [a-z][0-9a-zA-Z_]* |
Variables | [A-Z_][0-9a-zA-Z_]* |
Floats | (+|-)?[0-9]+.[0-9]+((E|e)(+|-)?[0-9]+)? |
正则表达式是以Erlang字符串来编写的。这意味着字符 或 ” 必须以转码方式来书写。例如浮点数的正则表达式就是:(+|-)?[0-9]+.[0-9]+((E|e)(+|-)?[0-9]+)?。
正则表达式并不是一定要有转义序列字符的,他们可以自动生成。除了用在不同的地方,否则与普通的Erlang字符串是一样的。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!