How to replace any number of repeating characters in a string or character array

10 views (last 30 days)
I have Evil input text from which I need to extract tabular data for csv output.
The principle challenge is removing any number of the repeating .... character, while not removing single instances of a period.
I'd like to replace the repeating character with a comma so that the text can be turned into a CSV-style output. Note that there are other commas also present that should remain.
Here's an example.
EVIL TEXT INPUT:
Riots, Tips and Other Cleverness:................................$49,000.21
Submission Flavor:.............................................Original document
REQUIRED CLEAN CSV OUTPUT:
'Riots, Tips and Other Cleverness',49000.21
'Submission Flavor','Original document'

Accepted Answer

Ameer Hamza
Ameer Hamza on 31 May 2020
Something like this
str = fileread('test.txt');
new_str = regexprep(str, ':\.{2,}', ',')
Result
new_str =
'Riots, Tips and Other Cleverness,$49,000.21
Submission Flavor,Original document'

More Answers (1)

CdC
CdC on 2 Jun 2020
Found another approach that works better in this context:
test = 'Riots, Tips and Other Cleverness:................................$49,000.21';
C = strsplit(test,'..'); % >> cell array ans = {'Riots, Tips and Other Cleverness:'} {'$49,000.21'}

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!