Как получить jth через kth строку с помощью регулярных выражений? - PullRequest
0 голосов
/ 31 марта 2019

есть ли регулярное выражение для извлечения диапазона строк, например, от 4-й до 6-й строки только для примера (но регулярное выражение должно быть общим, в какой-то момент я буду изменять требуемые строки для параметризации), ниже должно возвращаться

<edgeData file="e1det_-143547931#1_1-results-aggregated.xml" id="e1det_-143547931#1_1"/>
    <edgeData file="e1det_143547931#0_0-results-aggregated.xml" id="e1det_143547931#0_0"/>
    <edgeData file="e1det_143547931#0_1-results-aggregated.xml" id="e1det_143547931#0_1"/>

полные данные

<?xml version="1.0" ?>
<additional>
    <edgeData file="e1det_-143547931#1_0-results-aggregated.xml" id="e1det_-143547931#1_0"/>
    <edgeData file="e1det_-143547931#1_1-results-aggregated.xml" id="e1det_-143547931#1_1"/>
    <edgeData file="e1det_143547931#0_0-results-aggregated.xml" id="e1det_143547931#0_0"/>
    <edgeData file="e1det_143547931#0_1-results-aggregated.xml" id="e1det_143547931#0_1"/>
    <edgeData file="e1det_143551389#1_0-results-aggregated.xml" id="e1det_143551389#1_0"/>
    <edgeData file="e1det_143551389#1_1-results-aggregated.xml" id="e1det_143551389#1_1"/>
    <edgeData file="e1det_-143547931#2_0-results-aggregated.xml" id="e1det_-143547931#2_0"/>
    <edgeData file="e1det_-143547931#2_1-results-aggregated.xml" id="e1det_-143547931#2_1"/>
    <edgeData file="e1det_143547931#1_0-results-aggregated.xml" id="e1det_143547931#1_0"/>
    <edgeData file="e1det_143547931#1_1-results-aggregated.xml" id="e1det_143547931#1_1"/>
    <edgeData file="e1det_143553082#1_0-results-aggregated.xml" id="e1det_143553082#1_0"/>
    <edgeData file="e1det_143553082#1_1-results-aggregated.xml" id="e1det_143553082#1_1"/>
    <edgeData file="e1det_-143551389#1_0-results-aggregated.xml" id="e1det_-143551389#1_0"/>
    <edgeData file="e1det_-143551389#1_1-results-aggregated.xml" id="e1det_-143551389#1_1"/>
    <edgeData file="e1det_143551389#0_0-results-aggregated.xml" id="e1det_143551389#0_0"/>
    <edgeData file="e1det_143551389#0_1-results-aggregated.xml" id="e1det_143551389#0_1"/>
    <edgeData file="e1det_348320661#1_0-results-aggregated.xml" id="e1det_348320661#1_0"/>
    <edgeData file="e1det_348320661#1_1-results-aggregated.xml" id="e1det_348320661#1_1"/>
    <edgeData file="e1det_-143553082#1_0-results-aggregated.xml" id="e1det_-143553082#1_0"/>
    <edgeData file="e1det_-143553082#1_1-results-aggregated.xml" id="e1det_-143553082#1_1"/>
    <edgeData file="e1det_-348320661#1_0-results-aggregated.xml" id="e1det_-348320661#1_0"/>
    <edgeData file="e1det_-348320661#1_1-results-aggregated.xml" id="e1det_-348320661#1_1"/>
    <edgeData file="e1det_143553082#0_0-results-aggregated.xml" id="e1det_143553082#0_0"/>
    <edgeData file="e1det_143553082#0_1-results-aggregated.xml" id="e1det_143553082#0_1"/>
    <edgeData file="e1det_348320661#0_0-results-aggregated.xml" id="e1det_348320661#0_0"/>
    <edgeData file="e1det_348320661#0_1-results-aggregated.xml" id="e1det_348320661#0_1"/>
</additional>

1 Ответ

3 голосов
/ 31 марта 2019

Вот шаблон регулярного выражения, который будет произвольно соответствовать 4-6-й строкам, включая некоторые входные данные:

(?:.*\n){3}(.*\n.*\n.*\n)

или, может быть, в блокноте ++

(?:.*\R){3}(.*\R.*\R.*\R)

Этот шаблон потребляет, без захвата, первые три строки, а затем захватывает следующие 3 строки в группе захвата.

Демо

Обратите внимание, что обычно не следует использовать регулярное выражение для разбора содержимого XML. Но, в вашем случае, поскольку вы просто хотите извлечь целые строки, независимо от вложенных тегов, проблем не должно быть.

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