erlang的re包是兼容Perl(没学过...)的正则表达式的。
里面的函数也是对于正则的处理。
lz水平有限 doc又不是很看得懂 先写一点 以后再补充吧..
可以用compile这个函数来返回特定的内部使用的正则表达式:
20> {ok,MP}=re:compile("abc",[caseless]). {ok,{re_pattern,0,0, <<69,82,67,80,61,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,97,1,99, ...>>}}
这边建立一个匹配"abc"的表达式 选项是不区分大小写
其他的选项还有很多(看不懂啊 看不懂啊...)
run 执行正则匹配
有两个参数和三个参数的形式 三个参数的形式多了一个选项
一些例子: MP是上面的函数产生的:
48> re:run("abcabc",MP,[]). {match,[{0,3}]} 49> re:run("abcabc",MP,[{capture,all,list}]). {match,["abc"]} 50> re:run("abcabcABC",MP,[{capture,all,list},global]). {match,[["abc"],["abc"],["ABC"]]}
关于 capture的选项 all是所有的 first是不显示子模式(不知道这么说对不对)的 看例子:
78> {ok,A}=re:compile("http(s)?",[caseless]). {ok,{re_pattern,1,0, <<69,82,67,80,74,0,0,0,1,0,0,0,6,0,0,0,1,0,0,0,104,1, 112,...>>}} 79> re:run("Http://www.baidu.com",A,[{capture,all,list}]). {match,["Http"]} 80> re:run("Https://www.baidu.com",A,[{capture,all,list}]). {match,["Https","s"]} 81> re:run("Https://www.baidu.com",A,[{capture,[1],list}]). {match,["s"]} 82> re:run("Https://www.baidu.com",A,[{capture,first,list}]). {match,["Https"]} 83> re:run("Https://www.baidu.com",A,[{capture,all_but_first,list}]). {match,["s"]}对于子模式还可以用[1],[2]匹配,例子:
相关推荐
总结来说,`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(...
标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...
- **路径操作**: 使用`cd`命令改变当前工作目录,如:`1> cd("e:/erlang_src").` - **打印当前路径**: 使用`pwd()`函数可以打印当前的工作目录。 #### 7. 高级函数定义与操作 - **高阶函数**: Erlang支持创建高...
4. **异常处理**:Erlang使用`try...catch...throw`语句来处理错误,异常可以被显式抛出,也可以由运行时系统隐式抛出。 5. ** OTP(Open Telecom Platform)**:OTP是Erlang生态系统的核心,提供了一套用于构建...
读书笔记:ErlangOTP设计原则中文文档
标题中的“Python-一个用Python实现的Erlang结点使用gevent库”指的是一个Python项目,该项目旨在实现Erlang的节点功能,但完全使用Python语言编写,并且利用了gevent库来提高并发性能。Erlang是一种用于构建高可用...
分布式Erlang使用虚拟机(VM)的克隆,使得构建大规模分布式系统变得简单。 ### 7. 错误处理与恢复 Erlang采用“let it crash”哲学,鼓励程序在遇到错误时立即崩溃,而不是尝试恢复。这样可以快速暴露问题,便于...
5. **安装**:最后,使用`make install`将编译好的Erlang二进制文件安装到你的系统路径。在某些系统上,你可能需要管理员权限执行此操作。 Erlang的主要特性包括: - **并发性**:Erlang的进程模型是轻量级的,...
4. **安装**:完成编译后,使用`sudo make install`将Erlang安装到系统路径中。 对于开发者来说,了解这些更新和变化至关重要,因为它们可能影响到现有项目的行为,或者提供新的工具和技术来解决特定问题。学习和...
在使用Erlang进行开发时,你可能需要用到以下工具和概念: - **Rebar3**:Erlang的构建和依赖管理工具,帮助你组织项目结构、编译代码和管理依赖。 - **OTP(Open Telephony Platform)**:Erlang的核心库,包含...
5. **REPL(Read-Eval-Print Loop)**:Erlang shell的使用,它是学习和测试Erlang代码的重要工具。 6. **实际应用案例**:可能包含Erlang在实时系统、网络通信、数据库或Web服务等领域的应用示例。 这两本书结合...
学习erlang的时候尝试编写的小例子,使用post方式发送json数据来进行http请求,希望能帮到大家~
Reia弥补了Erlang在字符串处理、正则表达式和与其他工具库链接方面的不足,并尝试引入面向对象编程(OO)概念。 2. **Lisp Flavoured Erlang (LFE)**: LFE是Erlang VM上的Lisp方言,它既保留了Lisp的语法特性,又...
Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性和处理大量并发连接的能力而被广泛应用于电信、互联网基础设施和实时系统。RabbitMQ...
使用这些工具时,需要确保输入的数据准确无误,包括呼叫到达率(单位时间内新呼叫的平均数量)、系统容量(可用的服务器或线路数量)以及平均通话时长。计算结果可以帮助决策者理解在当前配置下,系统的性能表现,并...
对于Linux系统来说,安装Erlang有多种方法,但推荐使用最新版本,因为新版本通常包含更多的功能增强和安全修复。"Erlang 20.3linux安装包"可能是一个为Linux系统设计的Erlang特定版本的安装包,它包含了所有必要的...
本文将详细讨论如何使用Erlang作为客户端来连接并操作Elasticsearch服务器。 首先,为了连接Elasticsearch,我们需要一个Erlang的客户端库。目前,有多个Erlang库可以实现这一功能,如`es_client`可能就是这样的一...
2. **生成Erlang代码**:使用protobuf编译器(protoc)和对应的Erlang插件,将`.proto`文件转换为Erlang模块。这些模块提供了编码和解码函数。 3. **编码与解码**:在Erlang程序中,你可以使用生成的模块来编码和...
在没有网络连接的情况下,离线安装Erlang可能会遇到一些挑战,但通过使用提供的压缩包,我们可以遵循以下步骤进行安装。 首先,我们需要了解Erlang的基本结构和依赖。Erlang的安装通常包括运行时系统(erts)和各种...