Perl正则表达式

简介: (.)是元字符,匹配任何的单字符。/bet.y/ 这个模式匹配 bet,中间接任何一个字符(除换行符外),后面接Y字符。/3\.14159/ (\.)这消除元字符含义,只匹配句点号本身。
(.)是元字符,匹配任何的单字符。

/bet.y/ 这个模式匹配 bet,中间接任何一个字符(除换行符外),后面接Y字符。

/3\.14159/ (\.)这消除元字符含义,只匹配句点号本身。

量词:

* 匹配前面的内容零次或多次

  /freb.*barney/ .*为捡破烂模式,通吃所有的字符串.

+ 匹配前一个条目一次以上

  /fred +barney/  中间有空格,匹配一次以上的空格。

? 匹配前一个条目一次或不匹配

模式分组
/(fred)+/ 会匹配fredfredfred,其中()是元字符

$_ ="abba";
if(/(.)\1/){ ( 这里的反向引用看不懂,mark一下,以后再钻)
    print "it matched \n";
}

择一匹配
/fred|barney/betty/  '|'具有或的功效

字符集(指一串可能出现的字符集合,通过写在方括号([])内表示.它只匹配单个字符,但可以使字符集里列出的任何一个)

[abcwxyz]匹配这七个字符中的任何一个,可以使用连字符(-),就可以写成[a-cw-z]
[^def]匹配d,e,f之外的字符
\d [0-9]
\w [A-Za-z0-9_]
\s [\f\t\n\r ]=>等于是包含5种空白的字符集:换页,制表,换行,回车以及空格( 一般使用:\s*,\s+

以m// 进行匹配 =>模式匹配定界符
例如:next if ( m|/.*mysqld, Version:.+ started with:| );(m||就是模式匹配定界符,里面匹配的都是正则表达式的写法)
.*(通吃所有字符,除换行符外)
.+(匹配一个以上)
\d+(一个以上的数字)
\s+(匹配一个以上的空白字符集)

/^fred/和、/rock$/,这里^和$都是锚位,一个代表以开头匹配,一个代表以结尾匹配

可修辞符:
/i 大小写无关   /s来匹配任意字符  /x加入空白

/-?\d+\.?\d*/x

拆分分析:
/
 -?   #匹配零个或一个减号
 \d+  #匹配一个或多个数字
 \.?  #匹配零个或一二小数点
 \d*  #匹配零个或多个数字
/x

note:/^\#/,匹配去除以#号开头的语句。

=~绑定操作符, =~能让Perl拿右边的模式来匹配左边的字符串,而非匹配$_。

捕获变量( 真是个强大的功能

圆括号有启动正则表达式处理引擎的捕获功能。把(圆括号中模式所匹配的)部分字符串暂时记下来的能力,如果有一对圆括号,就会有一次以上的捕获。

例如:
    原文记录:
    # Query_time: 1.558936  Lock_time: 0.000077 Rows_sent: 0  Rows_examined: 262144

    if ( /Query_time:\s+(.*)\s+Lock_time:\s+(.*)\s+Rows_examined:\s+(.*)/ ) {

        $time    = $1;
        $rows     = $3;
        $new_sql = 1;
        # print "found $1 $3\n";
        next;

    }
   
    这里就可以捕获$1,$2,$3,它们分别的值是1.558936,0.000077,262144

S///是Perl中替换功能( 未完待续



相关文章
|
1月前
|
Windows Perl
Perl 教程 之 Perl 正则表达式 8
Perl的正则表达式是其强项,常用于字符串匹配、查找、替换等。基本操作包括:`.`匹配任意字符(除换行符),`x?`匹配0或1次`x`,`x*`匹配0或多次`x`,`x+`匹配1或多次`x`。还有范围匹配如`[0-9]`、否定匹配`[^a-z]`、边界匹配`\b`等。特殊序列如`\d`代表数字,`\s`代表空格,`()`用于记忆匹配内容,`/pattern/i`忽略大小写。
10 0
|
1月前
|
Perl
Perl 教程 之 Perl 正则表达式 7
Perl教程讲解了其强大的正则表达式功能,用于字符串匹配、查找、替换和提取。示例展示如何使用`/s`删除变量`$string`中的重复字符,输出结果为原字符串。其他实例包括将非数字字符替换为空格,删除tab和空格,以及将数字间字符替换为单个空格。
15 3
|
1月前
|
Perl
Perl 教程 之 Perl 正则表达式 6
**Perl正则表达式强大多能,常用于字符串匹配、替换和提取。转化操作符如`tr`用于字符转换,如将所有小写字母转大写:`$string =~ tr/a-z/A-Z/`。**
17 2
|
1月前
|
Perl
Perl 教程 之 Perl 正则表达式 4
简洁概括:Perl正则表达式强大,s///操作符用于字符串替换,例子展示替换"google"为"baidu"。
12 1
|
1月前
|
Perl
Perl 教程 之 Perl 正则表达式 1
Perl教程介绍了其强大的正则表达式功能,用于字符串匹配、替换和转化。匹配用m//(可简写为//),替换用s///,转化用tr///,常与=~或!~配合判断匹配与否。示例展示了m//在匹配字符串中的应用。
11 0
|
存储 索引 Perl
Perl项目中的面向对象、继承默认加载和正则表达式的使用方法
Perl项目中的面向对象、继承默认加载和正则表达式的使用方法
|
PHP Perl 自然语言处理
posix,perl正则表达式区别
1、正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式、正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串 。
1529 0
|
SQL Perl
perl正则表达式--小写变大写
以下代码可以将SQL语句中的关键字改为大写,如create改为CREATE,Order改为ORDER,disTinCt改为DISTINCT,另外特别注意的是只有perl才支持/U替换选项 use strict;use warnings; my $str;$str="where create Or...
901 0

热门文章

最新文章