温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Perl正则表达式怎么用

发布时间:2021-12-04 13:46:42 来源:亿速云 阅读:113 作者:小新 栏目:开发技术

小编给大家分享一下Perl正则表达式怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Perl正则表达式

Perl正则表达式之元字符:

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

\转义符

Perl正则表达式之量词:

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

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

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

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

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

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

Perl正则表达式之编组:

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


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

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

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

''>

'|'

<regexp>-><regexp>'|'<concat>|<concat>

<concat>-><concat><repeat>|<repeat>

<repeat>-><repeat>('*'|'+'|'?'|'{'<int>'}')|<paren>

<paren>->'('<regexp>')'|'(?:'<regexp>')'|<char>

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                                 

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

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

s{fred}{barney};

s[fred](barney);

s<fred>#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'',<FILE>;

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


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

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

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

以上是“Perl正则表达式怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI