Как выбрать с помощью регулярных выражений несколько строк с двумя или даже более условными группами / совпадениями? - PullRequest
0 голосов
/ 05 апреля 2019

Мне нужно в файлах такого типа искать [Документация] и, когда он найдет, выбрать текст в первой строке. Если следующая строка начинается с пробела, то три точки и пробела выделяют также текст из всех таких строк.

@{TEST_SCREENS_WITH_TIMEOUT}    ShowDesc    ShowOsAndCountryCode    ShowSW  
...                             Checksum_PPSU   Checksum_BPSU                   
...                             Datetime_Clock  Datetime_DDMM
...                             ShowHWRevBaseboard  ShowHWRevSOM

*** Keywords ***
Program Version contain
[Documentation]     Read out program version and compare it with
    ...                 Comparison is done with "Should Contain"
    ...                 it checks if 

Tarif EPS is
[Documentation]     Read out tarif EPS and compare it with ${TARIF_EPS}
    ...                 Comparison is done with "Should be equal"
[Arguments]         ${TARIF_EPS}

Should be equal    ${disp_traf_eps}    ${TARIF_EPS}    Tarif EPS


Release Date contain
[Documentation] Read out program version and compare it with ${RELEASE_DATE}

Вот что мне удалось получить до сих пор:
^ \ S * [Документация] \ s + (+). (:?. (= \ S + ... \ s + (+))) *

Весь текст и регулярные выражения, которые я пробовал до сих пор, можно найти здесь: https://regex101.com/r/Jbzd4e/1

В моем случае он выбирает только 2 строки. Мне нужно выбрать только текст документации!

1 Ответ

1 голос
/ 05 апреля 2019

Как насчет этого: ^\s{1,}\[Documentation]\s*(.*)$|^\s{1,}\.{3}\s*(.*)$

https://regex101.com/r/C5FTzP/2

Update;

Или это может быть более элегантно: ^\s{1,}(\[Documentation]|\.{3})\s*(.*)$

https://regex101.com/r/C5FTzP/4

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