php 正则表达式常用例子

作者:袖梨 2022-11-14

1 函数ereg的使用示例。
2 函数eregi()的用法示例。
3 替换匹配的字符串。
4 用eregi_repalce()替换匹配字符串。
5 使用函数split()。
6 函数split()的使用。
7 函数sql_regcase()生成正则表达式。
8 正则表达式函数preg_grep()的用法示例。
9 用函数preg_match()进行正则表达式匹配。
10 匹配函数preg_match_all()的应用。
11 表达式搜索和替换的函数preg_repalce()。
12 通过正则表达式匹配的串分割字符串。
13 检查ip地址的正则表达式示例1。
14 检查ip地址的正则表达式示例2。
15 匹配中文字符串。
16 email正则表达式。
17 url正则表达式。

*/

// 1、函数ereg的使用示例。

代码如下 复制代码

$arr_date = array(
'2004-06-01',
'2005-0x-10',
'12-12-12',
'2000-12-25 00:10:20',
'2007-12-05'
);

for ($i=0; $i<5; ++$i)
{
$date = $arr_date[$i];
if(ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs))
{
echo "日期字符串$date 符合'yyyy-mm-dd'格式:";
echo "$regs[1].$regs[2].$regs[3]

";
}
else
{
echo "日期字符串$date 不符合'yyyy-mm-dd'格式的日期字符串

";
}
}

// 2、函数eregi()的用法示例。

代码如下 复制代码

$arr_str = array(
'python',
'php',
'perl',
'ruby'
);

for($i=0; $i<4; ++$i)
{
$str = $arr_str[$i];
if(eregi('p|h', $str))
{
echo "'$str' 含有p、p、h或h

";
}
else
{
echo "'$str' 不含 p、p、h或h

";
}

if(ereg('p',$str))
{
echo "在ereg()中 '$str' 匹配'p'

";
}
else
{
echo "在ereg()中 '$str' 不匹配'p'

";
}
}

// 3、替换匹配的字符串。

代码如下 复制代码

$str = "1fish2fish3fish4fish5fish";
echo "替换前字符串为:
";
echo $str;
echo "
";
echo "
";

$str_rpc = ereg_replace("[0-9]", " ", $str);
echo "替换后字符串为:
";
echo $str_rpc;

// 4、用eregi_repalce()替换匹配字符串。

代码如下 复制代码

$str = "you have a car, i have a car, we have cars!";
echo "替换前字符串为:
";
echo $str;
echo "
";
echo "
";

$pattern = "car";
$replacement = "apple";
$str_rpc = eregi_replace($pattern, $replacement, $str);
echo "替换后字符串为:
";
echo $str_rpc;

// 5、使用函数split()。

代码如下 复制代码

$str = "aaa~bbb~ccc~ddd";
echo "字符串截取前:$str";
echo "
";
echo "
";

$sep_arr = split("~",$str);
echo "字符串截取后:
";
echo "

";
print_r($sep_arr);

// 6、函数split()的使用。

代码如下 复制代码

$str = "aaaaaaa~bbbbc~dccce~fdddzzz";
echo "字符串截取前:
$str";
echo "
";
echo "
";

$sep_arr = split("[a-z]{3}",$str);
echo "使用aaa,bbb,ccc,ddd做分割字符串后:";
echo "

";

print_r($sep_arr);

// 7、函数sql_regcase()生成正则表达式。

代码如下 复制代码

$str = "k#v3050";
echo "原字符串:
$str";
echo "
";
echo "
";

$reg_str = sql_regcase ($str);
echo "使用函数sql_regcase()生成的正则表达式为:";
echo "
";
echo $reg_str;

// 8、正则表达式函数preg_grep()的用法示例。

代码如下 复制代码

$test_preg = array(
"ak47",
"163.com",
"happy new year!",
"ex0000",
"007 in usa",
"abc123",
"test-abc-315",
"123654789",
"euapa00!"
);

echo "原数组:";
echo "

";
print_r($test_preg);
echo "
";

$preg_arr = preg_grep("/^[a-z].*[0-9]$/",$test_preg);
echo "
";
echo "将原数组中以任意大写字母开头的、中间任意个字符、最后以数字结尾的字符串找出:";
echo "

";
print_r($preg_arr);
echo "
";

// 9、用函数preg_match()进行正则表达式匹配。

代码如下 复制代码

$str_arr = array(
"php 是优秀的web脚本语言",
"perl的文本处理功能很强大"
);

foreach($str_arr as $str)
{
//模式定界符后面的修正符"i" 表示匹配时不区分大小写字母
if(preg_match("/php/i", $str))
{
echo "在字符串' $str '中找到对'php'的匹配";
echo "
";
echo "
";
}
else
{
echo "在字符串' $str '中找到对'php'的匹配";
echo "
";
echo "
";
}
}

// 10、匹配函数preg_match_all()的应用。

代码如下 复制代码

$html = "粗体字符可点击的连接";

preg_match_all ("/(<([w]+)[^>]*>)(.*)()/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++)
{
echo "匹配:".$matches[0][$i]." ";;
echo "第一部分:".$matches[1][$i]." ";
echo "第二部分:".$matches[3][$i]." ";
echo "第三部分:".$matches[4][$i]." ";
}

// 11、表达式搜索和替换的函数preg_repalce()。

代码如下 复制代码

$string = "the quick brown fox jumped over the lazy dog.";
echo "原字符串:
";
echo $string;
echo "

";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

$str1 = preg_replace($patterns, $replacements, $string);
echo "使用函数ksort()之前字符串替换为:
";
echo $str1;
echo "

";

ksort($patterns);
ksort($replacements);

$str2 = preg_replace($patterns, $replacements, $string);
echo "使用函数ksort()之前字符串替换为:
";
echo $str2;
echo "

";

// 12、通过正则表达式匹配的串分割字符串。

代码如下 复制代码

$str = 'php language programming in web';
echo "原字符串:
";
echo $str;
echo "

";

$chars = preg_split('/ /', $str, -1, preg_split_offset_capture);
echo "调用函数preg_split()后:";
echo "

";
print_r($chars);

// 13、检查ip地址的正则表达式示例1。

代码如下 复制代码

$arr_ip = array(
"127.0.0.1",
"218.206.10.123",
"192.221.515.0",
"123.0.0.0.1",
"-12.255.0.10",
"10.9c.132.69",
"255.10.10.255"
);

foreach ($arr_ip as $ip)
{
if(validateip($ip))
{
echo "$ip 是正确的ip地址";
echo "

";
}
else
{
echo "$ip 不是正确的ip地址";
echo "

";
}
}

function validateip($ip)
{
$iparray = explode(".",$ip);
for($i=0;$i {
if($iparray[$i]>255)
return (0);
}
return ereg("[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}",$ip);
}

// 14、检查ip地址的正则表达式示例2。

代码如下 复制代码

$arr_ip = array(
"127.0.0.1",
"218.206.10.123",
"192.221.515.0",
"123.0.0.0.1",
"-12.255.0.10",
"10.9c.132.69",
"255.10.10.255"
);

foreach ($arr_ip as $ip)
{
if(validateip($ip))
{
echo "$ip 是正确的ip地址";
echo "

";
}
else
{
echo "$ip 不是正确的ip地址";
echo "

";
}
}

function validateip($ip)
{
$iparray = explode(".",$ip);
for($i=0;$i {
if($iparray[$i]>255)
return (0);
}
return ereg("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$",$ip);
}

// 15、匹配中文字符串。

代码如下 复制代码

$str_arr = array(
"iameverysorry",
"快乐编程,快乐生活",
"php编程",
"1997年香港回归",
"英语学习abc",
"123456789"
);

$patt_ch = chr(0xa1) . "-" . chr(0xff);

foreach ($str_arr as $str)
{
echo "字符串'$str' 是";
if (preg_match("/^[$patt_ch]+$/", $str))
{
echo "完全中文";
echo "
";
echo "
";
}
else
{
echo "非完全中文";
echo "
";
echo "
";
}
}

// 16、email正则表达式。

代码如下 复制代码

$str_arr = array(
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"mymail@@@lsite.com",
"mymail@site",
"[email protected]",
"[email protected]",
"[email protected]",
);

$patt_email = "/^[_a-za-z0-9-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/";

foreach ($str_arr as $str)
{
echo "字符串'$str':是";
if (preg_match($patt_email, $str))
{
echo "合法的email格式";
echo "
";
echo "
";
}
else
{
echo "不合法的email格式";
echo "
";
echo "
";
}
}
// 17、url正则表达式。
$str_arr = array(
"http://www.111com.net",
"mb.111com.net",
"http://www.myoosite.com/abc/123.html",
"http//down.111com.net",
":www.myoosite.com"
);

$patt_url = "/^(http://)?[a-za-z0-9]+(.[a-za-z0-9]+)*.+$/";

foreach ($str_arr as $str)
{
echo "字符串'$str':是";
if (preg_match($patt_url, $str))
{
echo "合法的url格式";
echo "
";
echo "
";
}
else
{
echo "不合法的url格式";
echo "
";
echo "
";
}
}

?>

相关文章

精彩推荐