美文网首页
正则表达式

正则表达式

作者: 食梦狸猫 | 来源:发表于2019-03-26 09:54 被阅读0次

正则表达式是Perl内嵌的一个微型编程语言

使用简单模式

匹配对象是$_内容,那模式本身就是一串简单的字符串序列,把模式写在/中.

$_ = "asda";
if(/asad/)
{...}

Unicode属性

Unicode每个字符除了字节组合外,还有属性信息,除了匹配字符本身,还可根据字符属性来匹配。若要匹配某项属性,只需把属性名放入\p{PROPERTY},例如:

if(/\p{Space}/)
{...}

匹配空白符。

if(/\p{Digit}/)
{...}

匹配数字
将p改为大写表示不匹配

if(/\P{Space}/)
{...}

不匹配空白符

元字符

.可以匹配除了换行符之外任意字符。如果想只是匹配.本身,要加上反斜线转义。

简单量词

  • *能匹配前一个字符零次或者无数次。
    例如
"fred\t*ban"

那么能匹配在fred和ban之间包含0次或者无数次制表符的字符串。

.*能匹配任意字符0次到无限次

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

  • ?匹配前一个条目只出现一次或者不出现

模式分组

  • ()的作用是对字符串分组,使多个条目合并为一个条目。
/fred+/
#可以匹配freddddd
/(fred)+/
#可以匹配fredfredfred
/(fred)*/
#可以匹配hello,world

捕获组

通过反向引用来引用圆括号中的模式所匹配的文字。反向引用是在反斜线后面接上数字编号

if(/(.)\1/)
{...}
#匹配连续重复出现的两个字符"aa"

if(/y(....)d\2/)
{...}
#匹配yabccdabccabcc

在Perl5.10后可用\g{N}表示新的反向引用写法。N表示要反向引用的组号。

if(/(.)\g{1}/)
{...}

择一匹配

| 的意思是匹配左边的内容失败了可以匹配右边的内容

/fred(|\t)+barney/
#(|\t)可能匹配空格或者制表符
这就可以匹配两个名字之间至少要有一个空格或制表符

字符集

指一组可能出现的字符,通常写在([])表示匹配字符集中出现的单个字符。

[a-zA-Z]

字符集的简写

表示任意一个数字的字符集简写是\d

/[/d]/

表示任意一个空白符的字符集是\s

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

\h只匹配水平空白符,\v只匹配垂直空白符
\w匹配单词字符

反义简写

[^\d] == \D
#表示否定意义

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

      本文链接:https://www.haomeiwen.com/subject/enywvqtx.html