Допустим, у меня есть определенный файл, похожий на этот:
#tata toto
tata titi
tata tutu titi
#tata titi
tata toto #ZZZ
tata toto #ZZZ
#tata toto #ZZZ
tata titi #YYY
#tata titi #YYY
tata titi toto
Ответ. Я хочу сопоставить каждую строку:
- , начиная с tata
- захватить, если toto присутствует или нет
Например, если
tata titi => \1=tata \2=" titi" \3=null \4=null
tata titi toto => \1=tata, \2=" titi ", \3=toto, \4=null
tata toto tutu => \1=tata, \2=" ", \3=toto, \4=" tutu"
Я пробовал это регулярное выражение: ^(tata)(.*)(toto)?(.*)
Но .*
захватывает больше, чем ожидалось. Таким образом, toto никогда не записывается.
Как бы вы это сделали?
Чтобы получить больше контекста, я хочу проанализировать / etc / hosts: если я нашел определенный IP (здесь tata),но эта строка не содержит псевдоним имени хоста (здесь toto), мы добавляем его, сохраняя все псевдонимы имени хоста и имени хоста, уже определенные, и комментарий.
Спасибо, Рауль