欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

程序员文章站 2022-03-03 15:12:21
...
上篇文章给大家介绍了《PHP中什么是正则表达式中的原子?有哪些内容组成?(附代码)》,本文继续给大家介绍PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

元字符(原子修饰符)

原子数量修饰符

  • +表示前面的原子出现-次或者多次

  • ?表示前面的原子出现e次或者 1次

  • *表示前面的原子出现B次1次或者多次

  • {m,n}表示前面的原子出现最少H次,最多N次

  • {}表示前面的原子出现指定次

  • {m,}表示前面的原子最少出现次以上

  • 词边界修饰符(了解)

什么是词边界

  • 可以分割一个单词的字符都是词边界包括空格,标签符号,特殊字符,字符串的开始和结束,每行的结束部分。

  • 不可以当做词边界的部分就是数字、字母和_

  • \b表示词边界

  • \B表示非词边界

字符串边界修饰符(也就是开始和结束)

  • 表示以指定的字符开头的内容

  • $表示以指定的字符结尾的内容

  • ^字符串$表示精确匹配某个字符串多一个少一个都是错误

  • 如果要使用^和$可以匹配每行的开始和结束部分, 需要使用模式修正符m 视为多行处理。

选择修饰符

模式单元()

  • 1.改变优先级

  • 2.将多个原子视为一个原子,目的是为了使用原子数量修饰符。

  • 3.将匹配到括号的内容占时存为内存当中。

  • 4.如果使用()仅仅为了模拟一个原子使用原子数量修饰符,那么可以在括号的开始处使用? :来解除存于内存的作用。提高效率。

假如我想去匹配一个内容(Google),此时我们有一个要求就是,我们刚刚输出的google的第二个o可以有也可以没有,如果我们定义一个$pattern = '/google/';此时我们定义完之后,我们进行匹配,发现匹配结果是成功的(运行结果如下所示),但是当我们把第二个o删掉,我们的匹配结果是失败的,

<?php
//进行匹配
$str = $_POST['str'];
//$pattern = '/a/' ;
//调用正则匹配函数
$pattern = '/google/';
$result = preg_match($pattern , $str , $match);
echo ' 匹配结果为: '.$result;
echo '<hr/>' ;
if ( $result){ 
echo '<font color="pink" size="5 ">匹配成功</font>';
}else{
echo '<font color="red">匹配失败</font>';
}
var_dump($match);
?>

代码结果如下:

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

此时,如果我们想设置第二个o可以有可以没有,我们就可以在第二个o后面插入一个问号(?表示前面的原子可以出现零次或者是一次),此时我们再一次进行匹配,会发现结果匹配成功:

<?php
//进行匹配
$str = $_POST['str'];
//$pattern = '/a/' ;
//调用正则匹配函数
$pattern = '/goo?gle/';
$result = preg_match($pattern , $str , $match);
echo ' 匹配结果为: '.$result;
echo '<hr/>' ;
if ( $result){ 
echo '<font color="pink" size="5 ">匹配成功</font>';
}else{
echo '<font color="red">匹配失败</font>';
}
var_dump($match);
?>

代码结果如下:

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

如果说我们想让(o)出现一次甚至多次,我们就不能再使用(?)把问号改为加号

$pattern = '/goo+gle/';

接着我们运行结果显示如下:

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)

推荐学习:《PHP视频教程

以上就是PHP中什么是元字符?我们该如何使用正则表达式的元字符?(附代码)的详细内容,更多请关注其它相关文章!

相关标签: 元字符