Нужно регулярное выражение для анализа строки - PullRequest
1 голос
/ 19 марта 2012

Используя регулярное выражение, я хочу проанализировать строку типа «DOCID = 1234567 THIS IS TEST» и удалить оставшуюся строку после чисел.

Как я могу сделать это с помощью редактора VIM?

Ответы [ 4 ]

4 голосов
/ 19 марта 2012

В Perl:

$str =~ s/(= \d+).*$/$1/;

В php:

$str = preg_replace('/(= \d+).*$/', "$1", $str);
2 голосов
/ 22 марта 2012

Это сделает работу:

:%s/\d\+\zs.*

Пояснение:

  • % использовать весь буфер, вы можете пропустить это, если хотите изменить только текущую строку
  • s команда замены
  • \d\+ соответствует столько чисел
  • \zs установить начало матча здесь
  • .* все остальное
  • вы можете опустить замещающую строку, потому что хотите удалить совпадение
1 голос
/ 19 марта 2012

В VIM, в командном режиме (нажмите ESC), напишите:

:s/\([^0-9]\+[0-9]\+\).*/\1/

Это сделает работу.Если вы хотите сделать все возможные замены, то:

:s/\([^0-9]\+[0-9]\+\).*/\1/g
0 голосов
/ 19 марта 2012

в Яве string.replaceFirst("(= \\d+).*$","\\1");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...