簡體   English   中英

PHP-刪除字符串中重復的單詞

[英]Php - Remove repeated words in a string

輸入:滾珠代碼

輸出應為:球代碼

輸入:awycodeawy

輸出應為:awycode

我嘗試了這些,但是沒有用:

$q = preg_replace("/\s(\w+\s)\1/i", "$1", $q);
$q = preg_replace("/s(w+s)1/i", "$1", $q);
$q = preg_replace("/\b(\w+)\s+\\1\b/i", "$1", $q);

這是基於正則表達式的解決OP問題的積極前瞻性嘗試。

$arr = array('ball ball code', 'abcabc bde bde', 'awycodeawy');
foreach($arr as $str)
   echo "'$str' => '" . preg_replace('/(\w{2,})(?=.*?\\1)\W*/', '', $str) ."'\n";

輸出值

'ball ball code' => 'ball code'
'abcabc bde bde' => 'abc bde'
'awycodeawy' => 'codeawy'

您可以為輸入'awycodeawy''codeawy'而不是'awycode' 原因是有可能找到一個variable length lookahead而這對於后lookbehind對象是不可能的。

暫無
暫無

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

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