是不是介样子呢?- $t='WADCBADCBAFEGFLIFABCDEFABCDEFALI';
- $f=$t.ToCharArray();
- [array]::Reverse($f);
- $e=-join($f);
-
- $d=[regex]::Matches($e, "(?s)(.)((?:(?!\1).)+)\1(?=\2\1){1,}").value;
-
- # 这是获取最长一个为 :输出B
- if($null -ne $d -and $d.Length -gt 0){
- $s=[Linq.Enumerable]::Max($d, [func[object,int]]{param($i); $i.Length;});
- $d.Where{$_.Length -eq $s}.Foreach{$_.SubString($_.Length-2,1)}
- }
-
- # 这是获取每一个为 ;输出 B;D
- if($null -ne $d -and $d.Length -gt 0){
- $d.ForEach{$_.SubString($_.Length-2,1)}
- }
复制代码
|