`

perl正则表达式中该注意的一个问题

 
阅读更多

请看以下例子

代码1

 

$a='abc123EEE11';
while($a=~/\d+/g){
	print $&,"\n";
}

 将输出 

123

11

 

代码2

 

$a='abc123EEE11';
while($a=~/\d+/){
	print $&,"\n";
}

 将无限输出123,该程序将无限循环

 

代码3

 

$a='abc123EEE11';
@result=$a=~/\d+/g;

 result数组中包含2个数,123和11

 

 

ps:

如果你想在匹配表达式过程中添加控制

则使用以下方式

$a='abc123EEE11';
while($a=~/\d+/g){
	print $&,"\n";
}

如果想直接返回所有匹配结果则使用

$a='abc123EEE11';
@result=$a=~/\d+/g;

如果只想匹配一个结果,则把g参数省略掉

 

 

另外如果使用的是替换模式

$a='abc123EEE11k11';

@result=$a=~s/\d+/P/g

则result只有一个元素,其值为匹配的数目,当没有匹配时,是存储的是一个空置,似乎是空字符串吧

 

 

分享到:
评论

相关推荐

    perl正则表达式讲解

    ### Perl正则表达式详解 #### 一、Perl正则表达式基础介绍 在计算机科学领域,正则表达式是一种强大的文本处理工具,被广泛应用于字符串搜索与替换等操作之中。Perl作为一门脚本语言,其对正则表达式的支持尤为...

    java正则表达式.zip

    Pattern类是Java正则表达式的起点,它将一个正则表达式编译成一个模式对象。这个编译过程可以优化后续的匹配操作。例如,创建Pattern对象的代码如下: ```java Pattern pattern = Pattern.compile("正则表达式"); `...

    正则表达式(一)从初学到精通正则表达式

    正则表达式也可以匹配第二个“a”,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。 特殊字符 对于文字字符,有 11 个字符被保留作特殊用途。他们是:[ ] \ ^ $ . | ? * + ( )这些特殊字符也被称作元...

    常用java正则表达式

    接着,定义了一个名为`SocialSecurityNumberValidator`的类,在主方法中使用`Pattern.compile`编译正则表达式,并使用`matcher.matches`来检查字符串是否与给定的模式匹配。 通过上述知识点的学习,读者可以了解到...

    深入浅出之正则表达式(一)

    在编写正则表达式时,需要注意兼容性问题。 3. **文字符号与特殊字符** 基本的正则表达式由单个文字符号组成,例如 "a"。如果希望匹配文本中的特定位置,可以使用特殊字符,但这些字符在正则表达式中有特殊含义,...

    SAP ABAP 正则表达式 Regular expressions

    需要注意的是,ABAP的正则表达式语义可能与其他语言(如Perl、Java)有所不同,因此使用专门针对ABAP的工具进行测试显得尤为重要。 这就是Regex Toy的作用所在。这个小型的交互式工具专为ABAP开发者设计,旨在快速...

    delphi2010 正则表达式实例

    在Delphi 2010中,正则表达式是一个强大的工具,用于处理字符串匹配、查找、替换等任务。TPerlRegEx组件是Delphi引入的正则表达式引擎,它基于Perl兼容正则表达式(PCRE)库,提供了丰富的正则表达式功能。下面我们...

    使用正则表达式的模式匹配

    值得注意的是,JavaScript的正则表达式语法与Perl编程语言的正则表达式非常相似。事实上: - **JavaScript 1.2** 实现了与Perl 4兼容的正则表达式功能。 - **JavaScript 1.5** 实现了Perl 5正则表达式的大部分特性...

    js正则表达式详解

    虽然本文主要介绍了JavaScript中的正则表达式,但提到了Jakarta-ORO库,这是一个Java中用于处理正则表达式的开源库。尽管如此,对于JavaScript开发者来说,理解Jakarta-ORO库的原理和技术仍然很有帮助,尤其是在跨...

    regex-正则表达式教程.pdf

    例如,正则表达式"regex|regex not"在正则导向的引擎上应用于字符串"regex not"时,会返回"regex"作为第一个匹配项。 了解正则表达式的内部工作机制对于编写正确和高效的正则表达式至关重要。通过学习这个教程,...

    C++ BOOST 正则表达式使用教程

    C++ BOOST 正则表达式使用教程 正则表达式是一种用来描述一定数量文本的模式,用于匹配和处理大量规则的文本格式...Boost 库的 regex 类提供了一个强大且灵活的正则表达式解决方案,能够满足各种复杂的文本处理需求。

    MFC自带的stl正则表达式的使用

    然而,需要注意的是,MFC中的正则表达式语法并不完全遵循Perl或PCRE(Perl Compatible Regular Expressions)的标准。例如,它不支持一些高级特性,如非捕获组 `(?:...)` 或者条件表达式 `(?(...)yes|no)`。这意味着...

    python 正则表达式 详解(英文)

    Python正则表达式是专门用于在字符串中匹配字符组合的一个强大的工具,它使用一种特殊的语法来表示搜索模式。正则表达式不仅在Python中有着广泛的应用,在UNIX世界中也扮演了重要的角色。本文档主要介绍Python中与...

    PCRE 正则表达式 DLL 工程

    在本"PCRE正则表达式DLL工程"中,我们有一个完整的工程实例,该实例允许你在Windows环境下以动态链接库(DLL)的形式使用PCRE功能。 1. **PCRE库介绍** - PCRE库不仅实现了Perl 5.10之前的正则表达式语法,还支持...

    Python正则表达式操作指南.pdf

    - 在复杂的正则表达式中,注意避免过于贪婪的匹配以及不必要的重复计算。 - 对于性能敏感的应用,可以考虑预编译正则表达式。 - **调试与测试**: - 使用Python自带的`re`模块文档或在线工具进行正则表达式的...

    zzbd.rar_正则表达式_正则表达式c++

    - 注意正则表达式中的顺序,因为它们是左到右解析的,可能导致意料之外的结果。 9. **扩展应用** - 在网络爬虫中,正则表达式用于提取网页中的特定信息。 - 文件系统操作,如查找符合特定模式的文件名。 - 数据...

Global site tag (gtag.js) - Google Analytics