Я пытаюсь прочитать имя сервера из файла конфигурации nginx.
Поэтому мне нужно регулярное выражение в строку:
server_name this.com www.this.com someother-example.com;
Рекурсивный подшаблон regex
Я использую preg_match_all PHP и я пробовал разные вещи до сих пор:
/^(?:server_name[\s]*)(?:(.*)(?:\s*))*;$/m
: Что не дает мне ничего
/^(?:server_name[\s]*)((?:(?:.*)(?:\s*))*);$/m
Что дает мне это. com www.this.com someother-example.com
Но я не могу найти нужное, чтобы перечислить домены как отдельные значения.
[
0 => 'this.com',
1 => 'www.this.com',
2 => 'someother-example.com'
]
Возможно, один из вас знает?
Спасибо!
[Боб ваш дядя:] (https://regex101.com/r/sB0eG6/1) '(?: Server_name | \ G (?! <^)) \ S * \ K [^; \ s] + '. TLDR: это не имеет никакого отношения к «рекурсивным шаблонам». – HamZa
Если они разделены знаком пространства, почему бы вам просто не взорваться космическим знаком? – MilanG
Спасибо! Без «<» он делает то, что я хочу! – user3776824