Рекурсивное регулярное выражение

Я пытаюсь прочитать имя сервера из файла конфигурации nginx.
Так что мне нужно пересмотреть такую ​​строку:
server_name this.com www.this.com someother-example.com;

Я использую PHP preg_match_all и до сих пор пробовал разные вещи:
/^(?:server_name[\s]*)(?:(.*)(?:\s*))*;$/m: Что ничего не дает мне
/^(?:server_name[\s]*)((?:(?:.*)(?:\s*))*);$/m Что дает мне this.com www.this.com someother-example.com

Но я не могу найти правильный, чтобы перечислить домены как отдельные значения.

[
0 => 'this.com',
1 => 'www.this.com',
2 => 'someother-example.com'
]

Возможно, один из вас знает?

Спасибо!

2

Решение

как сказал твой дядя Боб:

(?:server_name|\G(?!^))\s*\K[^;|\s]+

Делает трюк!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]