http://zotonic.com/documentation/908/just-enough-zotonic-source-part-3-regular-expressions
27> re:run("E-mail: xyz@pdq.com", "[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{2,3}").
{match,[{8,11}]}
Note: DO NOT use this pattern in production. It needs more refinement and much more testing.
What other goodies does re offer?
split(Subject, RE) -> SplitList
and
split(Subject, RE, Options) -> SplitList
Examples:
28> re:split("this/is/my/path","/").
[<<"this">>,<<"is">>,<<"my">>,<<"path">>]
If you wish to use a pattern multiple times and boost perfomance, you can compile it with re:compile/1.
Example:
29> {_, P} = re:compile("[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{2,3}").
{ok,{re_pattern,0,0,
<<69,82,67,80,164,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,64,
...>>}}
30> re:run("E-mail: xyz@pdq.com", P).
{match,[{8,11}]}
How are regular expressions used in Zotonic source?
For one of many examples, look at ../zotonic/src/markdown/get_url/1.
get_url(String) ->
HTTP_regex = "^(H|h)(T|t)(T|t)(P|p)(S|s)*://",
case re:run(String, HTTP_regex) of
nomatch -> not_url;
{match, _} -> get_url1(String, [])
end.
分享到:
相关推荐
**erllex: 简单的Erlang正则表达式词法分析器** `erllex` 是一个基于Erlang语言实现的简单正则表达式词法分析器,它提供了一种方法来解析文本,根据预定义的模式(正则表达式)将文本分解成可操作的单元——标记...
RE2正则表达式库的Erlang NIF绑定 使用re2 考虑到RE2的差异,该库的API尽可能遵循标准的Erlang / OTP re API。 $ erl 1> re2:run("Bar-foo-Baz", "FoO", [caseless]). {match,[<<"foo">>]} 2> re2:replace(...
在JavaScript中,虽然没有内置的模式匹配功能,但我们可以利用正则表达式和对象解构等特性来模拟Erlang的模式匹配行为。 首先,让我们深入理解Erlang中的模式匹配。在Erlang中,模式匹配是函数定义的一部分,它允许...
在这个“erlang 连接学习例子”中,我们有两个核心文件:`server.erl` 和 `client.erl`,它们分别代表了一个服务器进程和客户端进程,展示了Erlang中进程间的通信机制。 `server.erl` 文件通常包含一个持续运行的...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在提供的文件列表中,我们可以看到一系列与Erlang编程相关的`.beam`文件,这些都是编译后Erlang模块的二进制表示。下面...
在Erlang中,模式匹配是一种控制流结构,而在正则表达式中,表达式用于字符串的模式识别和匹配。 3. Erlang I/O协议 Erlang的I/O协议定义了客户端和io_server之间的通信方式。io_server是一个处理输入输出请求的...
对于简单的文本匹配,正则表达式可能足够快,但对于复杂的模式匹配,其性能可能会下降。 ##### 1.3.2 定时器模块 定时器模块(`timer`)提供了定时功能,但在高并发环境下使用时可能会遇到性能瓶颈。在设计高性能...
Windows下使用NIF扩展Erlang完整例子,包含nif工程项目,erlang引用例子。 配套文章:http://blog.csdn.net/mycwq/article/details/17527485
Reia弥补了Erlang在字符串处理、正则表达式和与其他工具库链接方面的不足,并尝试引入面向对象编程(OO)概念。 2. **Lisp Flavoured Erlang (LFE)**: LFE是Erlang VM上的Lisp方言,它既保留了Lisp的语法特性,又...
有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。 - Jamie Zawinski 基本数据类型 数字处理算术时,支持浮点数或整数。 整数和浮点值几乎是 Erlang 的数学运算符将为您透明处理的唯一...
Erlang/OTP Application完整例子,含代码和二进制,对于学习Erlang/OTP Application很有帮助。 配套文章http://blog.csdn.net/mycwq/article/details/12610677
标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...
1. 新的正则表达式实现:在R13B中,正式支持了新的正则表达式引擎。这可能意味着对原有正则表达式的性能和功能进行了大幅改进,提供了更多高级匹配功能,以及更高效的执行。 2. 对称多处理(SMP):引入了多运行...
pcre-devel:用于支持正则表达式。 zlib-devel:用于支持压缩功能。 openssl-devel:用于支持 SSL/TLS 功能。 RabbitMQ: erlang:RabbitMQ 需要 Erlang 运行时环境。 MySQL: libaio:用于异步 I/O 支持。 numactl-...
它使用".*"作为版本正则表达式 它不使用任何其他依赖项选项,例如raw 对于满足这些条件的依赖项,此插件可以使用以下替代语法指定依赖项: {mydep, {github, "kellymclauglin/mydep.git", {tag, "1.0.1"}}} 使用...
1. **Erlang语法**:涵盖基本的变量、数据类型(如原子、列表、元组和二进制)、控制结构(如case表达式和if语句)以及函数定义。 2. **函数式编程概念**:Erlang是纯函数式语言,书中可能会介绍函数式编程的基本...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...
Windows下Erlang与C构建的节点通讯完整例子,包含cnode工程项目,erlang引用例子。 配套文章:http://blog.csdn.net/mycwq/article/details/40836273
**Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...