repeated characters in string

15 ビュー (過去 30 日間)
Ebtesam Almansor
Ebtesam Almansor 2016 年 10 月 13 日
回答済み: Gautam Mohan 2016 年 10 月 18 日
Hi there, I want to delete any character which repeated more than 3 in string I have this code which delete all repatriation Input = {'CEEEGH';'CCEEG';'ABCDEFF';'BCFGG';'BCDEEG';'BEFFH';'AACEGH'}
cellfun(@unique,Input,'UniformOutput',0)
  2 件のコメント
James Tursa
James Tursa 2016 年 10 月 13 日
Delete characters that repeat more than 3 times total, or more than 3 times in a row?
Jos (10584)
Jos (10584) 2016 年 10 月 13 日
What is the output supposed to look like?

サインインしてコメントする。

回答 (1 件)

Gautam Mohan
Gautam Mohan 2016 年 10 月 18 日
Hi Ebtesam,
If you want to delete any character which is repeated three or more times in a row, you can substitute the @unique function in your cellfun() with a regexp that searches for 3+ character matches and replaces them with nothing:
f = @(s) regexprep(s, '(\S)\1\1+', '');
cellfun(f,Input,'UniformOutput',0)
If you need to eliminate characters that occur 3 or more times throughout the whole string, I would recommend writing a separate function that accomplishes that goal and then applying it to each string using cellfun().
Hope this helps!

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by