Legacy implementation of strtrim prior to R2016a
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
sst
el 30 de Ag. de 2016
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 comentarios
Respuesta aceptada
Guillaume
el 30 de Ag. de 2016
regexp(yourstring, '(?<=^\W*)\w.*?(?=\W*$)', 'match', 'once')
should do the trick
4 comentarios
Guillaume
el 31 de Ag. de 2016
Editada: Guillaume
el 31 de Ag. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!