导航:首页 > 编程语言 > php匹配多个字符串

php匹配多个字符串

发布时间:2022-04-15 18:44:09

php正则表达式匹配0个或多个指定的字符

proct-1349.html
是对应 test.php?action=proct&rid=1349

proct.html

的rid怎么办?为 空?
RewriteRule ^/?([a-zA-Z]{1,})(-([0-9]{1,}))?\.html$ test.php?action=$1&rid=$3
123456789

⑵ php 正则表达式匹配一个字符串的多个值 然后逐一替换掉里面的 不全部替换成一个

举个例子给你看看是不是你想要的。

有个字符串“abcadeafg”,把其中的三个字母a分别替换成x,y,z:

$pattern=array('/a/','/a/','/a/');
$replacement=array('x','y','z');
$subject='abcadeafg';
$res=preg_replace($pattern,$replacement,$subject,1);
echo$res;//xbcydezfg

⑶ php 字符串匹配问题

要想得到第1个#和第2个#之间的字符串,用非贪婪的正则表达式,就可以实现.

完整的php程序如下(注意 这里取第一捕获组的数据,如果有多个子字符串要取,用preg_match_all函数)

<?php

$str="可能有写字#话题xyz#一些乱七八糟的字符#";

$regex="/#(.*?)#/i";

preg_match($regex,$str,$result);

print_r($result[1]);

?>

运行结果
话题xyz

⑷ PHP中如何匹配多个满足正则表达式的字符串

php split -- 用正则表达式将字符串分割到数组中
例子:
<?php
$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date); // 分隔符可以是斜线,点,或横线
echo "Month: $month; Day: $day; Year: $year \n";
?>

来自:http://peakzhengj.blog.163.com/blog/static/42476992007112411227717/

⑸ php 如何用strstr 查找多个字符 比如$aa="1234567@0" 里查找1或2或@

strstr — 查找字符串的首次出现

string strstr
( string $haystack
, mixed $needle
[, bool $before_needle = false
] )

返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。

$needle只能是字符(串)或者数字.不然会提醒:needle is not a string or an integer


如果一定要用strstr查询字符串 $aa中是否包含1或者2或者@ 可以下面这样:

$aa="1234567@0";
$search=array(1,2,'@');
functiontest($str,$array_search){
foreach($array_searchas$value){
if(strstr($str,$value)!==false){
returntrue;
}
}
returnfalse;
}
//使用方法
$test=test($aa,$search);//true

如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。

建议使用正则表达式简单些如:

$aa="1234567@0";
$search='/[12@]/';
if(preg_match($search,$aa)){
//包含1或者2或者@
}else{
//不包含
}

参考PHP手册网址:

http://php.net/manual/zh/function.strstr.php

⑹ 【php】同一字符串,多个条件,如何高效的匹配

楼主的意思的是看一个字符串里有多少种字符吗?如果是这样可以这样做:
用两个函数处理即可:
$array=explode($str);
$array=array_unique($array);
第一个函数把字符串$str分解成一个数组,赋给$array;
然后去除数组中相同的元素即可,剩下的就是数组在赋给$array即可。
纯手打,望采纳!

⑺ php 正则 匹配 时有多个字符满足条件,如果设置配匹第几个

如何设置,用preg_replace_callback 回调处理就可以了

<?php
$str="abc,def,ghi";
$cons = 1; //控制配匹第几个逗号
$n = 0;
function back($matches) {
global $cons,$n;
if($n==($cons-1)) {
$n++;
return "test";
}elseif($n>($cons-1)){
$n++;
return $matches[0];
}else{
$n++;
return "";
}
}
$str1 = preg_replace_callback("/[^,]*?\,/",'back',$str);
echo $str1;
?>

⑻ php正则字符串,匹配多个字母后边的数字作为参数

按照你的要求编写的PHP正则匹配程序如下

<?php

$str = "r1g2n3s4p5";

$regex="/([rgnsp])(d+)/";

$arr=Array();

preg_match_all($regex,$str,$result);

for($i=0;$i<count($result[1]);$i++){

$arr[$result[1][$i]]=$result[2][$i];

}

var_mp($arr);

?>

⑼ 怎么在php里用正则或匹配几个字符串

function match_number($pattern_arr, $subject)
{
$count = 0;
foreach($pattern_arr as $pattern)
{

if(preg_match("/$pattern/", $subject))
{
$count++;
}
}
return $count;
}

// example
$str1 = 'aaa';
$str2 = 'bbb';
$str3 = 'ccc';
$str4 = 'aaabbb';
$str_arr = array($str1, $str2, $str3);
print_r(match_number($str_arr, $str4));

⑽ php相同文本匹配多个字符

可以尝试如下代码

$regex='#<adata-num="(.*?)"data-chu="to=(.*?)"href="(.*?)">#i';
$str='<adata-num="1"data-chu="to=youku"href="

$matches=array();

if(preg_match_all($regex,$str,$matches,PREG_SET_ORDER)){
mp($matches);
}

测试结果

备注:代码中的 mp 是一个自定义函数,测试结果显示的是这个自定义函数的结果,php 自带的 var_mp 显示不太友好。你可以采用其它方法显示匹配结果

阅读全文

与php匹配多个字符串相关的资料

热点内容
看帧率app如何使用 浏览:523
从DHC服务器租用IP地址 浏览:473
编译怎么学 浏览:329
数码管显示0到9plc编程 浏览:665
服务器是为什么服务的 浏览:765
java定义数据类型 浏览:874
安卓pdf手写 浏览:427
什么是app开发者 浏览:284
android闹钟重启 浏览:101
程序员失职 浏览:518
在云服务器怎么改密码 浏览:586
服务器pb什么意思 浏览:940
51驾驶员的是什么app 浏览:670
php静态变量销毁 浏览:888
编程买苹果电脑 浏览:762
flac算法 浏览:499
reactnative与android 浏览:665
程序员是干什么的工作好吗 浏览:258
kbuild编译ko 浏览:471
条件编译的宏 浏览:566