`
langzhe
  • 浏览: 288295 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Erlang正则表达式的例子

 
阅读更多

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.
0
1
分享到:
评论

相关推荐

    erllex:简单的erlang正则表达式词法分析器

    **erllex: 简单的Erlang正则表达式词法分析器** `erllex` 是一个基于Erlang语言实现的简单正则表达式词法分析器,它提供了一种方法来解析文本,根据预定义的模式(正则表达式)将文本分解成可操作的单元——标记...

    re2:RE2正则表达式库的Erlang NIF绑定

    RE2正则表达式库的Erlang NIF绑定 使用re2 考虑到RE2的差异,该库的API尽可能遵循标准的Erlang / OTP re API。 $ erl 1&gt; re2:run("Bar-foo-Baz", "FoO", [caseless]). {match,[&lt;&lt;"foo"&gt;&gt;]} 2&gt; re2:replace(...

    Match在JavaScript中实现类似于Erlang的模式匹配

    在JavaScript中,虽然没有内置的模式匹配功能,但我们可以利用正则表达式和对象解构等特性来模拟Erlang的模式匹配行为。 首先,让我们深入理解Erlang中的模式匹配。在Erlang中,模式匹配是函数定义的一部分,它允许...

    erlang 连接学习例子

    在这个“erlang 连接学习例子”中,我们有两个核心文件:`server.erl` 和 `client.erl`,它们分别代表了一个服务器进程和客户端进程,展示了Erlang中进程间的通信机制。 `server.erl` 文件通常包含一个持续运行的...

    erlang程序设计相关例子程序

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在提供的文件列表中,我们可以看到一系列与Erlang编程相关的`.beam`文件,这些都是编译后Erlang模块的二进制表示。下面...

    erlang api 最新资源

    在Erlang中,模式匹配是一种控制流结构,而在正则表达式中,表达式用于字符串的模式识别和匹配。 3. Erlang I/O协议 Erlang的I/O协议定义了客户端和io_server之间的通信方式。io_server是一个处理输入输出请求的...

    Efficiency Guide (erlang)

    对于简单的文本匹配,正则表达式可能足够快,但对于复杂的模式匹配,其性能可能会下降。 ##### 1.3.2 定时器模块 定时器模块(`timer`)提供了定时功能,但在高并发环境下使用时可能会遇到性能瓶颈。在设计高性能...

    Windows下使用NIF扩展Erlang完整例子

    Windows下使用NIF扩展Erlang完整例子,包含nif工程项目,erlang引用例子。 配套文章:http://blog.csdn.net/mycwq/article/details/17527485

    基于Erlang VM的语言

    Reia弥补了Erlang在字符串处理、正则表达式和与其他工具库链接方面的不足,并尝试引入面向对象编程(OO)概念。 2. **Lisp Flavoured Erlang (LFE)**: LFE是Erlang VM上的Lisp方言,它既保留了Lisp的语法特性,又...

    java版商城源码-hello-erlang:Erlang的笔记和例子

    有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。 - Jamie Zawinski 基本数据类型 数字处理算术时,支持浮点数或整数。 整数和浮点值几乎是 Erlang 的数学运算符将为您透明处理的唯一...

    Erlang/OTP Application完整例子

    Erlang/OTP Application完整例子,含代码和二进制,对于学习Erlang/OTP Application很有帮助。 配套文章http://blog.csdn.net/mycwq/article/details/12610677

    在erlang项目中使用protobuf例子

    标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...

    Tentative new functions in R13B

    1. 新的正则表达式实现:在R13B中,正式支持了新的正则表达式引擎。这可能意味着对原有正则表达式的性能和功能进行了大幅改进,提供了更多高级匹配功能,以及更高效的执行。 2. 对称多处理(SMP):引入了多运行...

    CentOS7安装中间件的依赖包

    pcre-devel:用于支持正则表达式。 zlib-devel:用于支持压缩功能。 openssl-devel:用于支持 SSL/TLS 功能。 RabbitMQ: erlang:RabbitMQ 需要 Erlang 运行时环境。 MySQL: libaio:用于异步 I/O 支持。 numactl-...

    rebar3-tidy-deps-plugin:一个 rebar3 插件,为常见的 Erlang 项目启用一个漂亮的 tidy deps 规范

    它使用".*"作为版本正则表达式 它不使用任何其他依赖项选项,例如raw 对于满足这些条件的依赖项,此插件可以使用以下替代语法指定依赖项: {mydep, {github, "kellymclauglin/mydep.git", {tag, "1.0.1"}}} 使用...

    erlang资源

    1. **Erlang语法**:涵盖基本的变量、数据类型(如原子、列表、元组和二进制)、控制结构(如case表达式和if语句)以及函数定义。 2. **函数式编程概念**:Erlang是纯函数式语言,书中可能会介绍函数式编程的基本...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    Erlang与C构建的节点通讯完整例子

    Windows下Erlang与C构建的节点通讯完整例子,包含cnode工程项目,erlang引用例子。 配套文章:http://blog.csdn.net/mycwq/article/details/40836273

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

Global site tag (gtag.js) - Google Analytics