正则表达式

1、正则表达式

(1)原子(匹配linux)

0)任意一个字符

. 点匹配任意一个字符

<?php
$str="php is very much";
$ptn='/./';
//连续匹配
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

1)单个字母,数字

[a-z],[0-9],[123],[ABC]......

[]作用:匹配中括号里的任意一个元素

<?php
$str="php is very much";
$ptn='/[a-z]/';
//连续匹配
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

 

2)特殊字符

\d 任意一个数字

\D任意一个非数字

\s 空格

\S 非空格

\w任意一个字母、数字或下划线

\W任意一个非字母、数字或下划线

<?php
$str="php is very much1234";
$ptn='/\d/';
//连续匹配
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

 

3)向后引用

 $1,$2......

<?php
$str="2021-04-18";
$ptn='/(\d+)-(\d+)-(\d+)/';
$rep='$2/$3/$1';

$str2=preg_replace($ptn,$rep,$str);
echo  "$str2";


?>

4)转义符

\*,\.,\\

将特殊字符转化为普通字符

(2)元字符(匹配多个linux)

* 星号任意多个前面的字符(0、1……)

<?php
$str="php is hhh";
$ptn='/.*/';
preg_match($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

<?php
$str="phppp is hhh";
$ptn='/p*/';
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

 

+ 加号匹配一个或多个前面的原子

?问号匹配0个或者1个前面的字符

| 竖线表示或者

<?php
$str="abcdefab";
$ptn='/a|b|c/';
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

^第一个匹配的

<?php
$str="q1,q2,q3,q4";
$ptn='/^q./';
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

 

 

$最后一个匹配的

\b单词边界

<?php
$str="q1 q2q3 q4";
$ptn='/\bq.\b/';
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

\B非单词边界

<?php
$str="q1 q2q32 q4";
$ptn='/\Bq.\B/';
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

[^]取非

<?php
$str="1 2 3 4 a b s";
$ptn='/[^1-4]/';
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

 

{}多少个前面的原子

<?php
$str="12345678123456781234";
$ptn='/\d{8}/';
preg_match_all($ptn,$str,$arr);

echo "<pre>";
print_r($arr);
echo  "</pre>";


?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值