Найти строку по регулярному выражению - PullRequest
0 голосов
/ 22 января 2010

Мне нужно сделать регулярное выражение для извлечения некоторых строк.

Строка поиска может быть такой:

ANY_STRING(string1)this is
searching string1
ANY_STRING(string2)this is
searching string2

Соответствующие строки должны быть:

(string1)this is searching string1
(string2)this is searching string2

Есть идеи?

Спасибо.

Ответы [ 3 ]

1 голос
/ 22 января 2010

при условии, что ваши строки для поиска всегда заключены в скобки, и при условии, что вы используете * nix

$ awk '{match($0,/\(/);printf "%s ", substr($0,RSTART)} !/\(/{print ""}' file
(string1)this is searching string1
(string2)this is searching string2

В противном случае вы должны предоставить более конкретные данные.

1 голос
/ 22 января 2010

Заменить все символы новой строки пробелом, а затем разделить строку разделителем ANY_STRING.

0 голосов
/ 22 января 2010

Посмотрите на интерактивные оценщики для регулярных выражений, например. один на fileformat.info (для синтаксиса Java) или rubular.com (синтаксис Ruby). Это может помочь вам определить выражение, которое вам нужно.

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