2013-04-29 1 views
-2

У меня есть следующая строка:заменить весь текст до и после определенной строки с помощью регулярных выражений

«Текст перед строкой Я хочу, чтобы получить описание:.. Это строка, я хочу сохранить Рейтинг : 5 звезд."

Из этой строки я хочу вырезать первую часть и последнюю часть. Только середина - это то, что мне нужно. Программа, которую я использую для загрузки этих строк, может выполнять RegEx «Поиск и замена». Поэтому я могу заменить первую и последнюю часть строки пробелом для их удаления.

В этой форме всегда присутствуют слова Описание и рейтинг, поэтому их можно использовать для создания RegEx.

+3

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

ответ

3

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

^.*?Description:|Rating:.*$ 

Это может иметь некоторое неожиданное поведение, если «Текст перед строкой я хочу» может также содержать «Описание:» или строка, которую вы хотите сохранить, может содержать «Рейтинг:».

Обратите внимание, что технически якоря (^ и $) не нужны здесь, но они все еще полезны, чтобы понять, что все от начала строки до «Описание:» удаляется, а также все от «Рейтинг:» до конца строки.

+0

Работает как ожидалось, хотя мне пришлось добавить символ^как закрывающий символ. Спасибо! – Hugo

1

если ваш инструмент/программирование поддерживает Осмотреться:

'(?<=Description:).*(?=Rating:)' 

даст вам среднюю часть. так что вам не нужно «заменять». просто извлеките согласованную часть.

+0

Это хорошая альтернатива, хотя она не поддерживается инструментом, который я использую. – Hugo

Смежные вопросы