Как сопоставить табуляцию в конце строки с регулярным выражением Perl? - PullRequest
1 голос
/ 18 февраля 2010

У меня есть файл со следующим содержанием:

After learning everything you've learned so far, 
you may think you've bingo: got a pretty good foundation in 
programming Perl, since you'd already be a good way 
through most of the concepts many other languages entail. 
endbingo: But if you put down 
this book today and did nothing else
bingo: with Perl beyond what I've already taught you, 
you'd miss 
endbingo: thats ok.

Мне нужно регулярное выражение Perl, чтобы соответствовать строкам "bingo: получил довольно хорошее основание в" и "bingo: с Perl сверх того, что явас уже научили "..

В том смысле, что за словом" бинго: следует вкладка, за которой следует любой произвольный набор символов до конца строки ".

Ответы [ 5 ]

2 голосов
/ 18 февраля 2010

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

С официального сайта документации Perl:

Я понимаю, что это не дает прямого ответа на ваш вопрос (как это уже сделали другие), но, возможно, это поможет вам быстрее сойтись в решении будущей проблемы.

0 голосов
/ 18 февраля 2010

Если вы ищете вкладку, а не все пробелы, используйте следующее:

/bingo:\t.*$/

Если строка должна начинаться с "bingo:", вы должны использовать это:

/^bingo:\t.*$/
0 голосов
/ 18 февраля 2010

если по совпадению вы просто хотите показать строки с «bingo:» и табуляцией вперед, тогда

perl -ne 'print if /bingo:\s+.+$/' file

, если вы хотите сопоставить слово «bingo:», но не «endbingo:»тогда

$ perl -ne 'print if /\bbingo:\s+.+$/' file
you may think you've bingo: got a pretty good foundation in
bingo: with Perl beyond what I've already taught you,
0 голосов
/ 18 февраля 2010

Так что это не должно совпадать с endbingo?Попробуйте это:

/(?<!end)bingo:\s+.*$/

the (?

0 голосов
/ 18 февраля 2010

В многострочном режиме попробуйте:

 \Wbingo:\s.*$

\W означает любой не буквенно-цифровой символ

\s означает белый символ (пробел, табуляция, новая строка)

.* означает ноль или более случайных символов

$ означает конец строки

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