日期:2014-05-17  浏览次数:20626 次

求教PHP正则匹配问题
各位大虾,我是一个编程爱好者,初学PHP,遇到一个正则表达式匹配问题,百思不得解,特来求教。
我的代码如下:
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>第一个PHP网页</title>
</head>
<body>
<pre>
<?php
$str = "akk c";
$pattern="/(.)\1/";
echo preg_match($pattern,$str,$matches)."<br>";
var_dump($matches);
?>
</pre>
</body>
</html>

按说要能匹配“kk”,但输出结果却是:
0
array (size=0)
  empty

谢谢!

另:我的环境配置是:
服务器版本: 5.6.12-log - MySQL Community Server (GPL)
Apache/2.4.4 (Win64) PHP/5.4.12
php 正则表达式

------解决方案--------------------
你要匹配kk的话



$str = "akk c";
$pattern="/k+/";
echo preg_match($pattern,$str,$matches)."<br>";
var_dump($matches);


------解决方案--------------------
或这样



$str = "akk c";
$pattern="/(.)\\1/";
echo preg_match($pattern,$str,$matches)."<br>";
var_dump($matches);


------解决方案--------------------
写正则时最好用单引号,双引号会处理很多转义,所以要加很多\
比如,\1会被认为是\x01,必须写成\\1才能正确处理