遅かった・・・orz
連続重複している文字列が複数あった場合がよくわからなかったので、正規表現なしで書いてみました。
複雑ですいません。
PHP
1<?php
2
3$words = "one,two!three?three?four-five/five/six+";
4
5$wordsLength = strlen($words);
6$array = array();
7
8//検索対象文字列の長さの半分+1文字以上の検索は無意味
9//iは文字数,jは位置。2文字以上の単語を対象。1文字以上にする場合はiのスタートを1に。
10for ($i = 2; $i <= $wordsLength+1; $i++) {
11 for($j = 0; $j <= $wordsLength; $j++){
12 //検索キーワード抽出
13 $sample = substr($words,$j,$i);
14
15 $frontPosition = strpos($words,$sample);
16 $backPosition = strrpos($words,$sample);
17
18 if($frontPosition != $backPosition){
19 $sampleLength = strlen($sample);
20 $renzoku = substr($words,$frontPosition+$sampleLength,$sampleLength);
21 if($sample == $renzoku){
22 array_push($array,$sample);
23 }
24 }
25 }
26}
27
28$arrayNew = array_unique($array);
29
30echo "連続して重複しているのは";
31foreach($arrayNew as $value){
32 echo $value."\n";
33}
34
35?>