Как я могу использовать регулярное выражение для сопоставления текста, который находится между двумя строками, где эти две строки сами заключены в две другие строки, с любым количеством текста между внутренней и внешней строками?
Например, у меня есть этот текст:
внешнее начало некоторый текст внутреннее начало текст, который я хочу внутренний конец еще немного текста < strong>внешний конец
В данном случае мне нужен текст, который я хочу, потому что он находится между внутренним началом и внутренним концом, которые сами находятся между внешнее-начало и внешнее-конец.
Если у меня есть
некоторый текст внутреннее начало текст, который я хочу внутренний конец еще немного текста внешний конец
то мне не нужен текст, который я хочу, потому что, хотя он находится между внутренним началом и внутренним концом, есть эти строки не заключены в outer-start.
Аналогично, если у меня
внешнее начало какой-то текст текст, который я хочу внутренний конец еще немного текста внешний конец
опять же, мне не нужен текст, который я хочу, потому что нет вмещающего inner-start, хотя есть вмещающий outer-start< /strong> и внешний конец строки.
Предположим, что outer-start, inner-start, inner-end и outer-end будут использоваться только для целей включения / разграничения.
Я думаю, что могу сделать это, выполнив двухпроходное сопоставление регулярного выражения, т. е. поиск любых данных между outer-start и outer-end, а затем внутри этих данных поиск для любого текста между inner-start и inner-end (если эти строки действительно существуют), но я хотел бы знать, можно ли это сделать за один раз.
.*
съедает большую часть цитируемого вами текста. 02.01.2010.*?
между внешним и внутренним началом шаблоном, который исключит конкретную строку, которую вы хотите исключить. Это может быть сложно или нет, в зависимости от рассматриваемой строки. Если сомневаетесь, задайте отдельный вопрос. 03.01.2010