Когда мы добавляем положительный взгляд, только первая запись в следующей строке будет совпадать, потому что для остальных IP-адресов или имен DNS, положительный взгляд на самом деле не перед ними. Текст X509v3 Subject Alternative Name:
находится перед первым IP-адресом или DNS-именем.
Это шаблон просмотра за пределами списка (Шаблон 1) :
(?<=X509v3 Subject Alternative Name:)\s+(DNS:([\w\.\d]+),|IP Address:([\d\.]+))
И это шаблон IP-адреса или DNS-имени (шаблон 2) :
\s+(DNS:([\w\.\d]+),|IP Address:([\d\.]+))
Следовательно, вам придется сделать это, я думаю:
- Первая проверка если текст соответствует шаблону 1. Это гарантирует, что вы выбрали нужную вам строку или запись.
- Затем примените шаблон 2 и выберите значения.
I проверил его на Java и обнаружил, что он работает. Поскольку вы упомянули PHP в заголовке, я подумал, что код может быть вам не полезен. Следовательно, не публикуя.