[日常] 正则表达式 小括号() 中括号[] 大括号{}

2019-09-10 11:10:26 浏览数 (1)

1. ()匹配并捕获

2. []匹配字符组里的每一个字符

3.{}匹配出现的次数

代码语言:javascript复制
<?php
$str="taoshihan";
preg_match_all("/(tao)/",$str,$m);//匹配并捕获
var_dump($m);
/*
[0]是匹配到的
[1]是捕获到的
array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(3) "tao"
  }
  [1]=>
  array(1) {
    [0]=>
    string(3) "tao"
  }
}
*/
preg_match_all("/[tao]/",$str,$m);//匹配字符组中的字符
var_dump($m);
/*
按照单独的字符进行的匹配
array(1) {
  [0]=>
  array(4) {
    [0]=>
    string(1) "t"
    [1]=>
    string(1) "a"
    [2]=>
    string(1) "o"
    [3]=>
    string(1) "a"
  }
}

*/
preg_match_all("/a{1}/",$str,$m);//匹配大括号前面的表达式出现次数
var_dump($m);
/*
这里就是表示a出现一次 , 有两个地方
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "a"
  }
}

*/
$str="123456";
preg_match_all("/[0-9]{1}/",$str,$m);//匹配大括号前面的表达式出现次数
var_dump($m);
/*
匹配数字出现一次
array(1) {
  [0]=>
  array(6) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
    [3]=>
    string(1) "4"
    [4]=>
    string(1) "5"
    [5]=>
    string(1) "6"
  }
}

*/
$str="1234567";
preg_match_all("/[0-9]{1,2}/",$str,$m);//匹配最少出现1次,最多出现2次
var_dump($m);
/*
array(1) {
  [0]=>
  array(4) {
    [0]=>
    string(2) "12"
    [1]=>
    string(2) "34"
    [2]=>
    string(2) "56"
    [3]=>
    string(1) "7"
  }
}

*/

!preg_match('/^[a-zA-Z0-9]{2,16}$/') 只允许2~16位大小写字母及数字  

0 人点赞