全面认识Perl正则表达式使用

Perl正则表达式是Perl语言的一大特色,也是Perl程序中的一点难点,不过如果大家能够很好的掌握他,就可以轻易地用Perl正则表达式来完成字符串处理的任务,当然在CGI程序设计中就更能得心应手了。下面我们列出一些Perl正则表达式书写时的一些基本语法规则。

成都创新互联公司是专业的吴川网站建设公司,吴川接单;提供成都做网站、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行吴川网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

Perl正则表达式

Perl正则表达式之元字符:

.匹配除\n外的任意一个字符

\转义符

Perl正则表达式之量词:

{3}匹配前一单元的三个*?{0,}?匹配前一单元的零个或多个

+?{1,}?匹配前一单元的一个或多个

??{0,1}?匹配前一单元的零个或一个

*{0,}匹配前一单元的多个或零个贪

+{1,}匹配前一单元的多个或一个贪

?{0,1}匹配前一单元的一个或零个贪

Perl正则表达式之编组:

()编组且触发记忆(?:)编组但不触发记忆Perl正则表达式之多个选择:

Perl正则表达式之文法和算符优先级:

'()','(?:)'>

'*','*?','+','+?','?','??','{}','{}?'>

''>

'|'

->'|'|

->|

->('*'|'+'|'?'|'{''}')|

->'('')'|'(?:'')'|

Perl正则表达式之字符类:

[abcwxyz]==[a-cw-z]

\d==[0-9]

\D==[^0-9]

\w==[a-zA-Z0-9_]

\W==[^a-zA-Z0-9_]

\s==[\f\t\n\r]

\S==[^\f\t\n\r]

Perl正则表达式之选项修饰符:

/i使匹配大小写不敏感

/s使.匹配任意字符,包含'\n',等价于[\d\D]

/x允许Perl正则表达式中用空白和注释来增强可读性,空格文字和制表符文字等等将被忽略,只能用\s、\t等表示。/m匹配多行目标串时,改^和$的意义为行首锚和行尾锚

/g无重叠全局替换修饰符

Perl正则表达式之锚:

^串首锚

$串尾锚

\b单词边界锚参考\w

\B非单词边界锚

Perl正则表达式之绑定算子:

=~非赋值运算符也,绑定运算符也,It's曰ing:不处理$_了,处理我左边的那个家伙Perl正则表达式插值:

双引插值规则Perl正则表达式之匹配变量

()不仅用于Perl正则表达式的编组,也触发匹配引擎的记忆,引擎会将整个匹配段中与括号内Perl正则表达式对应的那部分存入记忆体内。自1编号,引用以$1,$2,...

记忆至下一次匹配成功时结束$&$MATCH整个匹配段

$`$PREMATCH匹配段之前的子串

$'$POSTMATCH匹配段之后的子串

Perl正则表达式举例:

/^fred|barney$/要么以fred打头,要么以barney结尾的串/^(fred|barney)$/

/(wilma|pebbles?)/

/^fred|barney$/m                                  #p#

Perl正则表达式之文本处理替换:

分隔符规则:s#^https://#http://#;

s{fred}{barney};

s[fred](barney);

s#barney#;

绑定算子:=~

大小写切换:\U此处起至\E全部大写

\L此处起至\E全部小写

\u下一个字母大写

\l下一个字母小写

举例:s/(bush|mandola)/\u\L$1/ig

Perl正则表达式之split算子

语法:split/PATTERN/,EXPR,LIMIT

以/PATTERN/分割EXPR,最多分成LIMIT份若LIMIT省略且尾部为空串,则丢弃它若LIMIT为负值,则视其为无穷大EXPR缺省为$_

/PATTERN/缺省为/\s+/

Perl正则表达式之列表环境下的m//:返回引擎记忆体中的变量。

my$data="BarneyRubbleFredFlintstoneWilmaFlintstone";

my%last_name=($data=~/(\w+)\s+(\w+)/g);

my@arr=($data=~/(\w+)\s+(\w+)/g);

Perl正则表达式之匹配多行文本:

^和$普通模式下是串首锚和串尾锚,在/m(多行模式)下为行首锚和行尾锚

\A匹配串首,\Z匹配串尾

/^nat/m===/^nat|\nnat/

openFILE,$filename

ordie"Can'topen'$filename':$!";

my$lines=join'',;

$lines=~s/^/$filename:/gm;


Perl正则表达式之更新多个文件:

钻石符号<>的魔力:他会自动地为你打开和关闭在命令行指定的一系列文件,若命令行没有指定任何文件名,他就打开标准输入。$^I会改变<>的行为,若$^I不是undef,则<>会将文件重命名以"文件名".

"$^I",然后创建名为"文件名"的文件,然后打开重命名后的文件以读,打开新建的文件以写。

本文名称:全面认识Perl正则表达式使用
本文路径:http://www.shufengxianlan.com/qtweb/news24/73124.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联