Сопоставить содержимое с регулярным выражением в файле? - PullRequest
2 голосов
/ 11 сентября 2010

Я хочу посмотреть, есть ли текст в файле, используя регулярное выражение.

# file.txt
Hi my name is Foo
and I live in Bar
and I have three children.

Я хочу посмотреть, если текст:

Hi my name is Foo
and I live in Bar

находится в этом файле.

Как мне сопоставить это с регулярным выражением?

Ответы [ 3 ]

4 голосов
/ 11 сентября 2010

Если вы хотите поддерживать переменные вместо «Foo» и «Bar», используйте:

/Hi my name is (\w+)\s*and I live in (\w+)/

Как видно на Рубуляр .

Это также помещает «Foo» и «Bar» (или любую другую содержащуюся строку) в группы захвата, которые вы можете использовать позже.

str = IO.read('file1.txt')    
match = str.match(/Hi my name is (\w+)\s*and I live in (\w+)/)

puts match[1] + ' lives in ' + match[2]

Напечатает:

Фу живет в баре

3 голосов
/ 11 сентября 2010

Используйте это регулярное выражение:

/Hi my name is Foo
and I live in Bar/

Пример использования:

File.open('file.txt').read() =~ /Hi my name is Foo
and I live in Bar/

Для чего-то такого простого также подойдет поиск строки.

File.open('file.txt').read().index('Hi my name...')
2 голосов
/ 11 сентября 2010

Почему вы хотите использовать регулярное выражение для проверки литеральной строки? Почему не просто

File.open('file.text').read().include? "Hi my name is Foo\nand I live in Bar"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...