Remove text from a text file without otherwise altering the file

조회 수: 1 (최근 30일)
Morpheuskibbe
Morpheuskibbe 2018년 6월 11일
편집: Paolo 2018년 6월 11일
I need to remove text from a text file without otherwise altering the file INCLUDING other text in the same line. specifically I need the text of the form 'E\S+' (ie "E3453.464") to go away without otherwise altering the line.
so this: G1 X104.650 Y95.350 E4.58979 should become this G1 X104.650 Y95.350
and this G1 E-2.00000 F2400.00000 should become this G1 F2400.00000

채택된 답변

Paolo
Paolo 2018년 6월 11일
편집: Paolo 2018년 6월 11일
You can use regexprep for this purpose.
x1 = 'G1 X104.650 Y95.350 E4.58979';
x2 = 'G1 E-2.00000 F2400.00000';
x1 = regexprep(x1,'(E-?)([0-9]){0,}\.?(\d+)\s?','');
x2 = regexprep(x2,'(E-?)([0-9]){0,}\.?(\d+)\s?','');
x1 = 'G1 X104.650 Y95.350 '
x2 = 'G1 F2400.00000'
The expression:
  • Match E
  • Match '-' optionally
  • Match numbers 0-9 at least one time
  • Match '.' optionally
  • Match as many digits as possible
  • Match whitespace optionally
  댓글 수: 6
Guillaume
Guillaume 2018년 6월 11일
Note that {0,} is the same as * and {1,} is the same as + in regular expressions. In my opinion, E-{0,} should be E-? (aka E-{0,1})
Paolo
Paolo 2018년 6월 11일
편집: Paolo 2018년 6월 11일
Totally, the first E-{0,} is actually meant to be E-?, as from the examples OP gave there is only one '-' character. While editing I changed both of them rather than just the second one...

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품


릴리스

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by