Perl模式匹配中的特殊字符用法指南

开发 架构
本文向大家简单介绍一下Perl模式匹配中特殊字符的概念,模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即模式def。

本文和大家重点讨论一下Perl模式匹配中的特殊字符的用法,比如说“+”,+用于使前面的字符与后面的字符至少匹配一次,也可以任意次地进行匹配。

Perl模式匹配中的特殊字符

1.1"+"

+用于使前面的字符与后面的字符至少匹配一次,也可以任意次地进行匹配。类似于windows中*例如/d+g/能匹配的dog,dogg,dooooog/ab+/在字符串abbc中匹配的将是abb,而不是ab。

1.2[]和[^]

[]意味着匹配一组字符中的一个
^表示除其之外的所有字符
例如/w[abcd]s/能匹配的was,wbs,wcs,wds
/w[^ab]s/不能匹配的was,wbs
也可以写成如下形式
/w[a-z0-9A-Z]s/

1.3字符*和?

它们与+类似,区别在于*匹配0个、1个或多个相同字符,?匹配0个或1个该字符。
例如/de*f/匹配df、def、deeeef等;/de?f/匹配df或def。

1.4位置通配符(锚模式)

^或\A仅匹配串首
$或\Z仅匹配串尾
\b匹配单词边界
\B单词内部匹配
例如:/^def/只匹配以def打头的字符串,/$def/只匹配以def结尾的字符串,结合起来的/^def$/只匹配字符串def(?)。\A和\Z在多行匹配时与^和$不同。

\b在单词边界匹配:/\bdef/匹配def和defghi等以def打头的单词,但不匹配abcdef。/def\b/匹配def和abcdef等以def结尾的单词,但不匹配defghi,/\bdef\b/只匹配字符串def。注意:/\bdef/可匹配$defghi,因为$并不被看作是单词的部分。

\B在单词内部匹配:/\Bdef/匹配abcdef等,但不匹配def;/def\B/匹配defghi等;/\Bdef\B/匹配cdefg、abcdefghi等,但不匹配def,defghi,abcdef。

1.5Perl模式匹配中字符转义类

\d任意数字[0-9]
\D除数字外的任意字符[^0-9]
\w任意单词字符[_0-9a-zA-Z]
\W任意非单词字符[^_0-9a-zA-Z]
\s空白[\r\t\n\f]
\S非空白[^\r\t\n\f]

1.6"."

字符"."匹配除换行外的所有字符,通常与*合用。

1.7Perl模式匹配中匹配指定数目的字符

字符对{}指定所匹配字符的出现次数。
如:/de{1,3}f/匹配def,deef和deeef;
/de{3}f/匹配deeef;
/de{3,}f/匹配不少于3个e在d和f之间;
/de{0,3}f/匹配不多于3个e在d和f之间。

1.8指定选项

字符"|"指定两个或多个选择来匹配模式。如:/def|ghi/匹配def或ghi。
这些转义符有一定的操作顺序:
()模式内存
+*?{}出现次数
^$\b\B锚
|选项

1.9Perl模式匹配中模式次序变量

在Perl模式匹配后调用重用部分的结果可用变量$n,全部的结果用变量$&。
$string="Thisstringcontainsthenumber25.11.";
$string=~/-?(\d+)\.?(\d+)/;#匹配结果为25.11
$integerpart=$1;#now$integerpart=25
$decimalpart=$2;#now$decimalpart=11
$totalpart=$&;#nowtotalpart=25.11

【编辑推荐】

  1. 解析Perl模式匹配中有哪些选项
  2. Perl学习笔记---Perl模式匹配
  3. Perl引用中直接引用用法解析
  4. Perl模式匹配选项详解
  5. 技术分享 解析Perl模块创建和导入方法
责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-26 17:09:00

Perl模块

2010-07-26 15:27:50

Perl foreac

2010-07-21 10:10:50

Perl split函

2010-07-20 14:52:51

Perl语法

2010-07-23 15:51:27

Perl开发工具

2010-07-19 15:25:39

Perl标量转换函数

2010-07-21 09:38:51

2010-07-19 10:11:58

Perl流程控制语句

2010-07-21 14:25:24

Perl格式化输出

2010-07-16 14:05:58

Perl数组

2010-07-28 14:59:26

Flex字符串

2013-02-18 13:44:22

CSSSASSWeb

2010-08-12 15:20:49

Flex Builde

2010-07-26 14:54:07

Perlsplit函数

2010-08-09 12:42:16

Flex module

2010-07-14 15:51:30

Perl 字符匹配

2010-07-30 10:13:38

Flex控件

2010-08-04 14:07:59

Flex事件机制

2010-08-16 15:11:02

DIV

2010-07-20 12:52:26

Perl特殊变量
点赞
收藏

51CTO技术栈公众号