что может быть регулярным выражением для следующей строки - PullRequest
2 голосов
/ 28 августа 2009

Я делаю это в отличной форме.

Ввод:

hip_abc_batch   hip_ndnh_4_abc_copy_from_stgig  abc_copy_from_stgig
hiv_daiv_batch  hip_a_de_copy_from_staging  abc_a_de_copy_from_staging

Я хочу получить последний столбец. в основном все, что начинается с abc_.

Я попробовал следующее регулярное выражение (работает для второй строки, но не для второй.

\abc_.*\

но это дает мне все после abc_batch

Я ищу регулярное выражение, которое принесет мне все, что начинается с abc_ но я не могу использовать \^abc_.*\, поскольку вся строка не начинается с abc_

Ответы [ 4 ]

5 голосов
/ 28 августа 2009

Звучит так, как будто вы ищете "слова" (то есть последовательности, не содержащие пробелов), которые начинаются с abc_. Вы можете попробовать:

/\babc_.*\b/

\b означает (в некоторых вариантах регулярного выражения) «граница слова».

3 голосов
/ 28 августа 2009

Попробуйте это:

/\s(abc_.*)$/m

Вот закомментированная версия, чтобы вы могли понять, как она работает:

\s          # match one whitepace character
(abc_.*)    # capture a string that starts with "abc_" and is followed
            # by any character zero or more times
$           # match the end of the string

Поскольку регулярное выражение имеет переключатель "m", оно будет многострочным. Это позволяет $ соответствовать концу каждой строки, а не концу всей строки.

Редактировать: Вам не нужно обрезать пропуски, так как вторая группа захвата содержит только текст. После краткого сканирования этого урока Я считаю, что это способ получить значение группы захвата с помощью Groovy:

matcher = (yourString =~ /\s(abc_.*)$/m)
// this is how you would extract the value from 
// the matcher object
matcher[0][1]
0 голосов
/ 28 августа 2009

Я думаю, что вы ищете это: \ s (abc_ [a-zA-Z _] *) $

Если вы используете perl и читаете все строки в одну строку, не забудьте установить опцию «m» в вашем регулярном выражении (что означает «рассматривать строку как несколько строк»).

Да, и Regex Coach - ваш свободный друг.

0 голосов
/ 28 августа 2009

Regex buddy (платно) и RegExr (бесплатно) может оказать большую помощь в изучении RegEx, если вы заинтересованы.

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