第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用正則表達(dá)式匹配逗號之間的整個單詞,或開頭的逗號,或結(jié)尾的逗號

用正則表達(dá)式匹配逗號之間的整個單詞,或開頭的逗號,或結(jié)尾的逗號

PHP
SMILET 2022-01-08 20:02:29
我有一個這樣的字符串:page-9000,page-template,page-type,page-category-128,image-195,listing-latest,rss-latest,even-more-info,even-more-tags我做了這個正則表達(dá)式,我希望得到整個標(biāo)簽:(?<=\,)(rss-latest|listing-latest-no-category|category-128|page-9000)(?=\,)我希望它匹配所有的出現(xiàn)。在這種情況下:page-9000 and rss-latest.這個正則表達(dá)式檢查逗號之間的整個單詞就好了,但它忽略了第一個和最后一個,因為它不在逗號之間(顯然)。我也試過它檢查它是否在逗號之間或開頭的一個逗號或一個逗號到結(jié)尾,但是它會給我誤報,因為它會匹配:category-128而字符串包含:page-category-128有什么幫助嗎?
查看完整描述

3 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊

嘗試使用以下模式:


(?<=,|^)(rss-latest|listing-latest-no-category|category-128|page-9000)(?=,|$)

我所做的唯一更改是添加邊界標(biāo)記^和$環(huán)視以匹配輸入的開始和結(jié)束。


腳本:


$input = "page-9000,page-template,page-type,page-category-128,image-195,listing-latest,rss-latest,even-more-info,even-more-tags";

preg_match_all("/(?<=,|^)(rss-latest|listing-latest-no-category|category-128|page-9000)(?=,|$)/", $input, $matches);

print_r($matches[1]);

這打?。?/p>


Array

(

    [0] => page-9000

    [1] => rss-latest

)


查看完整回答
反對 回復(fù) 2022-01-08
?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗 獲得超6個贊

這是使用explodeand的非正則表達(dá)式方式array_intersect:


$arr1 = explode(',', 'page-9000,page-template,page-type,page-category-128,image-195,listing-latest,rss-latest,even-more-info,even-more-tags');


$arr2 = explode('|', 'rss-latest|listing-latest-no-category|category-128|page-9000');


print_r(array_intersect($arr1, $arr2));

輸出:


Array

(

    [0] => page-9000

    [6] => rss-latest

)


查看完整回答
反對 回復(fù) 2022-01-08
?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊

的(?<=\,)和(?=,) 所需要的存在的,對匹配圖案的兩側(cè)。您還想在字符串的開頭/結(jié)尾進(jìn)行匹配,這就是您需要明確告訴匹配,字符串的開頭/結(jié)尾或使用雙重否定邏輯與否定外觀內(nèi)的否定字符類的地方。


您可以使用


(?<![^,])(?:rss-latest|listing-latest-no-category|category-128|page-9000)(?![^,])

查看正則表達(dá)式演示


在這里,(?<![^,])匹配字符串位置或 a 的開頭,并(?![^,])匹配字符串位置或的結(jié)尾,。


現(xiàn)在,您甚至不需要捕獲組,您可以使用非捕獲組來消除它的開銷,(?:...). preg_match_all不必為子匹配分配內(nèi)存,結(jié)果數(shù)組會更干凈。


PHP 演示:


$re = '/(?<![^,])(?:rss-latest|listing-latest-no-category|category-128|page-9000)(?![^,])/m';

$str = 'page-9000,page-template,page-type,page-category-128,image-195,listing-latest,rss-latest,even-more-info,even-more-tags';


if (preg_match_all($re, $str, $matches)) {

  print_r($matches[0]);

}

// => Array ( [0] => page-9000 [1] => rss-latest )


查看完整回答
反對 回復(fù) 2022-01-08
  • 3 回答
  • 0 關(guān)注
  • 621 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號