How to remove numbers between specific symbols in text array?

Hello everyone,
I have a question regarding how to modify a text array in Matlab which contains numbers between two "_" symbols. Here some examples:
  • If the string has the following structure: "Gas_1_O2" I expect the following result: "Gas_O2". This should work for every number between two "_" symbols.
  • If the string has another structure nothing should happen (e.g. "Time" or "Flow_Fluidization").
The text string will later on be used for renaming a table.
I tried with the function extractBetween but it did not worked as I expected.
Thanks for your support.
Best,
Joseba

 채택된 답변

madhan ravi
madhan ravi 2019년 2월 14일
a="Gas_1_O2";
regexprep(a,'\_\d*.?\d*\_','_')

댓글 수: 5

Can you explain your regex? I don't get why you're not using
'_[0-9]*_'
or
'_\d*_'
Your code will also remove 1k8 in this example:
a='Gas_1k8_O2';
The code was put keeping only numbers (including decimals) in mind , '_[0-9]*_' or '_\d*_' would fail if there is a decimal number inbetween.
In that case:
regexprep(a,'\_(\d+[\.]?\d*)\_','_')
"The code was put keeping only numbers (including decimals)..."
Remember that . by itself matches all characters, not just the decimal point / period chraacter.
madhan ravi
madhan ravi 2019년 2월 14일
편집: madhan ravi 2019년 2월 14일
True Stephen that‘s why I used [\.] to preserve dot character in the latter comment.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Rik
Rik 2019년 2월 14일
You can use regular expressions for this task:
str1='Gas_1_O2';
str2='Flow_Fluidization';
regexprep(str1,'_[0-9]*_','_')
regexprep(str2,'_[0-9]*_','_')
Joseba Moreno
Joseba Moreno 2019년 2월 14일

0 개 추천

Hello again,
the script works good, thanks for it. I am facing now a minor problem with "duplicate variable names", due to the following reason:
Before renaming: "Temp_01_free", "Temp_02_free", etc.
After renaming: "Temp_free" in all cases. Is it possible to number the variables then as long as they are repeated? For instance: "Temp_free1", "Temp_free2", etc.
Thanks again!
Joseba

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

질문:

2019년 2월 14일

편집:

2019년 2월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by