Legacy implementation of strtrim prior to R2016a
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
It looks like strtrim changed in R2016a to not trim significant whitespace characters. However, I have a need for a legacy implementation. Is it possible to provide one that works in R2016a, but also trims significant whitespace characters?
0 Kommentare
Akzeptierte Antwort
Guillaume
am 30 Aug. 2016
regexp(yourstring, '(?<=^\W*)\w.*?(?=\W*$)', 'match', 'once')
should do the trick
4 Kommentare
Guillaume
am 31 Aug. 2016
Bearbeitet: Guillaume
am 31 Aug. 2016
First of all, I made a mistake in the regex, it should have been \s instead of \W and \S instead of \w (yes upper and lower case should be swapped as well), so:
regexp(yourstring, '(?<=^\s*)\S.*?(?=\s*$)', 'match', 'once')
This will not speed up the regex, the slow down is probably caused by the non-greedy all capturing star .*? followed by the greedy capturing \s*, which causes a lot of backtracking.
However, this regex will do the same and should be significantly faster:
regexp(yourstring, '(?<=^\s*)\S.*\S(?=\s*$)', 'match', 'once')
As for a legacy option for strtrim, this is something you would have to ask Mathworks through a service request.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!