很多站长朋友们都不太清楚php正则取文本,今天小编就来给大家整理php正则取文本,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 怎么用php正则获得a标签内的文字啊 2、 php正则表达取指定长度文本怎么弄? 3、 php正则提取 怎么用php正则获得a标签内的文字啊php中正则匹配只要使用这两个函数:
preg_match_all
preg_match
这里使用preg_match_all,代码如下:
$subject = '<a href="xxx.php">abc测试</a>'; // 假设这是需要匹配的字符串
$pattern = '/<a href="[^"]*"[^>]*>(.*)<\/a>/'; // 这是匹配的正则表达式
preg_match_all($pattern, $subject, $matches); // 开始匹配,该函数会把匹配结果放入 $matches数组中
echo "<pre>";
print_r($matches);
/**
结果是:
Array
(
[0] => Array
(
[0] => abc测试
)
[1] => Array
(
[0] => abc测试
)
)
*/
php正则表达取指定长度文本怎么弄?如果你只是限制用户名或者密码的长度,那就没必要用正则
$user = $_POST['user'];
if ( strlen( $user ) < 6 || strlen( $user ) > 12 ) {
用户名长度只能6-12位
}
如果是要限制长度,并且只能是字母数字的话, 那就可以用正则
if ( !preg_match('/^\w{6,12}$/is') ) {
用户名必须是字母数字下划线组合,6-12位
}
至于你第二个问题,估计是编码没有统一,否则不可能出现那种字符的
php正则提取可用如下的代码来实现:
<?php
$str1="|1234|#2354#@2314@
|1314|#2154#@2214@
|1234|#2354#@2314@
|1314|#2154#@2214@";
if(preg_match_all("/\|(\d{4})\|\#(\d{4})\#\@(\d{4})\@/m",$str1, $out, PREG_PATTERN_ORDER))
for($i=0;$i<count($out[0]);$i++)
{
echo "{'".$out[1][$i]."','".$out[2][$i]."','".$out[2][$i]."'}<br/>";
}
?>
效果如下所示:
{'1234','2354','2354'}
{'1314','2154','2154'}
{'1234','2354','2354'}
{'1314','2154','2154'}
关于php正则取文本的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php正则取文本 php正则匹配html标签内容的详细内容...