PHP - 正则表达式

PHP - 正则表达式 首页 / PHP入门教程 / PHP - 正则表达式

PHP提供了特定于两组正则表达式函数的函数,每组对应于某种类型的正则表达式。您可以根据自己的习惯使用它们中的任何一种。

  • POSIX正则表达式
  • PERL正则表达式

POSIX正则表达式

POSIX正则表达式的结构与典型的算术表达式没有什么不同:各种元素(运算符)组合在一起形成更复杂的表达式。

最简单的正则表达式是匹配单个字符(如g),内部字符串(如g,haggle或bag)的表达式。

让无涯教程解释一下POSIX正则表达式中使用的几个概念。之后将向您介绍与正则表达式相关的函数。

括号(Brackets)

在正则表达式的context中使用方括号([])具有特殊含义,它们用于查找一系列字符。

Sr.NoExpression & Description
1

[0-9]

它匹配从0到9的任何十进制数字。

无涯教程网

2

[a-z]

它匹配从小写a到小写z的任何字符。

3

[A-Z]

它匹配从大写A到大写Z的任何字符。

4

[a-Z]

它匹配从小写字母a到大写字母Z的任何字符。

数量词(Quantifiers)

方括号字符序列和单个字符的频率或位置可以用特殊字符表示。每个特殊字符都有特定的含义。 +,*,?,{int。 range}和$标志都遵循一个字符序列。

Sr.NoExpression & Description
1

p+

它匹配包含至少一个p的任何字符串。

2

p *

它匹配包含零个或多个p的任何字符串。

3

p?

它匹配任何包含零或一个p的字符串。

4

p { N }

它匹配任何包含 N p序列的字符串

5

p {2,3}

它匹配包含两个或三个p的序列的任何字符串。

6

p {2,}

它匹配包含至少两个p的序列的任何字符串。

7

p $

它匹配任何以p结尾的字符串。

8

^ p

它匹配任何以p开头的字符串。

以下示例将清除有关匹配字符的概念。

Sr.NoExpression & Description
1

[^ a-zA-Z]

它匹配不包含从a到z和A到Z的任何字符的任何字符串。

2

p.p

它匹配包含p的任何字符串,后跟任何字符,然后依次匹配另一个p。

3

^.{2} $

它匹配包含正好两个字符的任何字符串。

4

<b>(.*)</b>

它匹配<b>和</ b>中包含的任何字符串。

5

p(hp)*

它匹配任何包含p的字符串,后跟零个或多个php序列。

字符范围

为了方便编程,可以使用几个预定义的字符范围,也称为字符类。字符类指定整个字符范围,如,字母或整数集-

Sr.NoExpression & Description
1

[[::alpha:]]

它匹配任何包含字母字符aA到zZ的字符串。

2

[[:digit:]]

它匹配任何包含数字0到9的字符串。

3

[[::alnum:]]

它匹配任何包含字母数字字符aA到zZ和0到9的字符串。

4

[[::space:]]

它匹配任何包含空格的字符串。

Regex POSIX函数

PHP当前提供了七个使用POSIX样式正则表达式搜索字符串的函数-

Sr.NoFunction & Description
1 ereg()

ereg()函数在string指定的字符串中搜索pattern指定的字符串,如果找到pattern,则返回true,否则返回false。

2 ereg_replace()

ereg_replace()函数搜索pattern指定的字符串,如果找到,则将pattern替换为replace。

3 eregi()

eregi()函数在pattern指定的整个字符串中搜索string指定的字符串。搜索不区分大小写。

4 eregi_replace()

eregi_replace()函数的操作与ereg_replace()完全相同,只是在字符串中搜索模式不区分大小写。

5 split()

split()函数会将字符串分成各种元素,每个元素的边界基于字符串中模式的出现。

6 spliti()

split()函数与其同级split()完全相同,但不区分大小写。

7 sql_regcase()

可以将sql_regcase()函数视为实用程序函数,它将输入参数字符串中的每个字符转换为包含两个字符的带括号的表达式。

PERL正则表达式

Perl样式的正则表达式与POSIX对应的正则表达式相似, POSIX语法几乎可以与Perl样式的正则表达式函数互换使用。实际上,您可以使用上一POSIX部分介绍的任何量词。

元字符

元字符只是字母字符,后跟反斜杠,以使组合具有特殊含义。

如,您可以使用'\d'元字符搜索大笔款项: /([[\d] +)000/,此处\d 将搜索任何数字字符字符串。

Character		Description
.              a single character
\s             a whitespace character (space, tab, newline)
\S             non-whitespace character
\d             a digit (0-9)
\D             a non-digit
\w             a word character (a-z, A-Z, 0-9, _)
\W             a non-word character
[aeiou]        matches a single character in the given set
[^aeiou]       matches a single character outside the given set
(foo|bar|baz)  matches any of the alternatives specified

修饰符

有几个修饰符可以使您使用正则表达式更容易,如区分大小写,在多行中搜索等。

链接:https://www.learnfk.comhttps://www.learnfk.com/php/php-regular-expression.html

来源:LearnFk无涯教程网

Modifier	Description
i 	Makes the match case insensitive
m 	Specifies that if the string has newline or carriage
	return characters, the ^ and $operators will now
	match against a newline boundary, instead of a
	string boundary
o 	Evaluates the expression only once
s 	Allows use of . to match a newline character
x 	Allows you to use white space in the expression for clarity
g 	Globally finds all matches
cg 	Allows a search to continue even after a global match fails

Regex PERL函数

PHP提供以下函数,用于使用与Perl兼容的正则表达式搜索字符串-

Sr.NoFunction & Description
1 preg_match()

preg_match()函数在字符串中搜索pattern,如果存在pattern,则返回true,否则返回false。

2 preg_match_all()

preg_match_all()函数匹配字符串中所有出现的模式。

3 preg_replace()

preg_replace()函数的操作与ereg_replace()相同,不同之处在于可以在模式和替换输入参数中使用正则表达式。

4 preg_split()

preg_split()函数的操作与split()完全相同,只不过正则表达式被接受为pattern的输入参数。

5 preg_grep()

preg_grep()函数搜索input_array的所有元素,返回与regexp模式匹配的所有元素。

6 preg_ quote()

引用正则表达式字符

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

零基础学Java -〔臧萌〕

Swift核心技术与实战 -〔张杰〕

ZooKeeper实战与源码剖析 -〔么敬国〕

JavaScript核心原理解析 -〔周爱民〕

代码之丑 -〔郑晔〕

容量保障核心技术与实战 -〔吴骏龙〕

程序员的个人财富课 -〔王喆〕

手把手带你写一门编程语言 -〔宫文学〕

超级访谈:对话张雪峰 -〔张雪峰〕

好记忆不如烂笔头。留下您的足迹吧 :)