導航:首頁 > 編程語言 > 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靜態變數銷毀 瀏覽:886
編程買蘋果電腦 瀏覽:762
flac演算法 瀏覽:499
reactnative與android 瀏覽:665
程序員是干什麼的工作好嗎 瀏覽:258
kbuild編譯ko 瀏覽:471
條件編譯的宏 瀏覽:566