簡體   English   中英

PHP preg_replace 在字符串中找到一個單詞並刪除其他字符

[英]PHP preg_replace find a word in string and remove other characters

我試圖從字符串中刪除所有與單詞列表不匹配的字符。

我的單詞列表可能是:

  • 動物

一個字符串可以是這樣的:

  • 123-ea-person.jpg
  • 456456-on-Person.jpg
  • 動物狗.png

我的結果應該是這樣的:

  • 動物

我的方法:

preg_replace('/(person|animal)/i', '', '123-ea-person.jpg')

output:
123-ea-.jpg

預計 output:
person

我怎樣才能反轉模式以獲得結果?

解決了
@Juan thx,我不需要擴展。

解決方案 1(@Juan):

strtolower(preg_replace('/(.*)(person|animal)(.*)/i', '$2', '123-ea-person.jpg'));

解決方案 2 (@user3783243):

strtolower(preg_replace('/(?:person|animal)(*SKIP)(*FAIL)|./i', '', '123-ea-person.jpg'));

結果:
person

帶有 PCRE 動詞的strtolower可以實現您的目標:

strtolower(preg_replace('/(?:person|animal)(*SKIP)(*FAIL)|./i', '', '123-ea-person.jpg 456456-on-Person.jpg a-animal-dog.png'));

使用這種方法,將跳過personanimal的比賽,所有其他比賽將被替換為空。

https://3v4l.org/pZ9YC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM