2014-11-07 2 views
0

Как получить (или удалить) все строки комментариев из файла matlab?Получить все строки комментариев

Линии могут начинаться с пробела или произвольного количества пробелов, за которым следует один или несколько %, а затем комментарий.

Использование

only_comments = regexp(raw_string, '(?m)^[ ]*[%].*?$', 'match'); 

терпит неудачу. Кроме того, как убедиться, что вкладки будут пойманы?

Как я понимаю, это его

  • (?m) режим линии
  • ^ начало строки
  • [ ]* нет или любое количество пробелов
  • [%].*?$ сопровождаемых %, а затем любой charachter пока конец линии.

Что не так?

+0

Вы могли бы разместить образец строки комментария? –

ответ

2

Похоже, вы хотите что-то вроде этого,

only_comments = regexp(raw_string, '(?m)^[ ]*[%]+.*?$', 'match'); 

ИЛИ

only_comments = regexp(raw_string, '(?m)^ *%+.*$', 'match'); 

Объяснение:

  • ^ Утверждает, что мы находимся в самом начале.
  • <space>* Соответствует нулю или больше пробелов.
  • %+ Матчи один или более %
  • .* Соответствуют любой символ, но не разрывы строк.
  • $ Утверждается, что мы находимся в конце.
+0

В чем разница между '[] *' и '*' (обратите внимание на пробелы во втором фрагменте)? – embert

+0

нет разница. Вам не нужно добавлять пустое пространство в класс символов. –

1
(?m)^[ ]*%+.*$ 

Подумайте, нужно this.your регулярное выражение (?m)^[ ]*[%].*?$ не количественно % .Это будет соответствовать только 1 % .Вы должны использовать %+, чтобы соответствовать одному или более из него.

+0

Чтобы очистить: на самом деле после '%' приходит комментарий, и вся строка должна соответствовать (или удалена). – embert

Смежные вопросы