Is it possible to use regexprep to insert a '*' between a number following a letter?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
stephen geddes
el 30 de Ag. de 2018
Comentada: stephen geddes
el 30 de Ag. de 2018
I have a an excel file containing cells of letters and number. I want to add a * symbol every time a number comes directly after a letter.
Some examples of the individual cells are,
28Si+H3
13C+D3
23Na
C2+H4
13C2+H2
So I want search each one and if a number follows a letter to put * in between.
28Si+H3 would become 28Si+H*3
3 comentarios
Image Analyst
el 30 de Ag. de 2018
Editada: Image Analyst
el 30 de Ag. de 2018
Because 28 is not letters A-Z. And, even though it's after 28, Si is not a number. If it were Si28, it would become Si*28, but it's not so you leave it alone.
Respuesta aceptada
Rik
el 30 de Ag. de 2018
Now I'm awake again: you can also do this in a oneliner:
str='C2+H4-28D';
m=regexprep(str,'([A-Za-z])(\d)','$1*$2');
4 comentarios
Rik
el 30 de Ag. de 2018
@Stephen, you're welcome. I still struggle with regular expressions sometimes, but the best way to learn them is to just start. I still grab the doc for regexp whenever I'm writing a regexp, even simple ones.
PS if this solved your question, please consider marking it as accepted answer
@jonas, your post gave me something I could easily adapt. As someone once told me: a good programmer is lazy, i.e. borrow and tweak working code whenever you can ;)
Más respuestas (0)
Ver también
Categorías
Más información sobre Characters and Strings 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!