返回首页
当前位置: 主页 > 编程语言 > PHP教程 >

PHP-正则表达式

时间:2020-06-19 12:26来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

正则表达式仅是字符本身的序列或模式。它们为模式匹配功能提供了基础。

使用正则表达式可以搜索另一个字符串中的特定字符串,可以将一个字符串替换为另一个字符串,并且可以将一个字符串拆分成许多块。

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

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

POSIX正则表达式

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

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

让我们解释一下POSIX正则表达式中使用的几个概念。之后,我们将向您介绍与正则表达式相关的功能。

括号

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

序号 表达与说明
1个

[0-9]

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

2

[az]

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

3

[AZ]

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

4

[aZ]

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

上面显示的范围是常规范围;您还可以使用范围[0-3]匹配范围从0到3的任何十进制数字,或范围[bv]匹配范围从b到v的任何小写字符。

量词

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

序号 表达与说明
1个

p +

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

2

p *

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

3

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

4

p { N }

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

5

p {2,3}

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

6

p {2,}

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

7

$

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

8

^ p

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

例子

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

序号 表达与说明
1个

[^ a-zA-Z]

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

2

pp

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

3

^。{2} $

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

4

<b>(。*)</ b>

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

5

p(马力)*

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

预定义字符范围

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

序号 表达与说明
1个

[[:α:]]

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

2

[[:数字:]]

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

3

[[:alnum:]]

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

4

[[:空间:]]

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

PHP的Regexp POSIX函数

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

序号 功能说明
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()函数会将字符串分成各种元素,每个元素的边界基于字符串中模式的出现。

6 spliti()

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

7 sql_regcase()

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

PERL样式正则表达式

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

让我们解释一下PERL正则表达式中使用的几个概念。之后,我们将向您介绍与正则表达式相关的功能。

元字符

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

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

以下是可在PERL样式正则表达式中使用的元字符列表。

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

修饰符

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

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

PHP的Regexp PERL兼容功能

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

序号 功能说明
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()

引用正则表达式字符


------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • PHP-错误与异常处理

    错误处理是捕获程序引发的错误,然后采取适当措施的过程。 如果正确处理错误,则可能...

  • PHP-正则表达式

    正则表达式仅是字符本身的序列或模式。 它们为模式匹配功能提供了基...

  • PHP-预定义变量

    PHP为它运行的任何脚本提供了大量预定义变量。 PHP提供了一组预定义的数组,其中包含...

  • PHP-编码标准

    每家公司都基于最佳实践遵循不同的编码标准。 需要编码标准,因为可能有许多开发人员...

  • PHP-文件上传

    PHP脚本可以与HTML表单一起使用,以允许用户将文件上传到服务器。 最初,文件被上传到...

  • PHP-使用PHP发送电子邮件

    必须在 php.ini 文件中 正确配置PHP ,并详细说明系统如何发送电子邮件。 打开 / etc ...

猜你感兴趣