Remove text from a text file without otherwise altering the file

1 view (last 30 days)
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

Accepted Answer

Paolo
Paolo on 11 Jun 2018
Edited: Paolo on 11 Jun 2018
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 Comments
Guillaume
Guillaume on 11 Jun 2018
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 on 11 Jun 2018
Edited: Paolo on 11 Jun 2018
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...

Sign in to comment.

More Answers (0)

Categories

Find more on Environment and Settings in Help Center and File Exchange

Products


Release

R2016a

Community Treasure Hunt

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

Start Hunting!