Я работаю с php, и я пытаюсь заставить регулярное выражение получить все после определенной строки (часть ответа Dig).
Это данные, с которыми я работаю.
; <<>> DiG 9.8.1-P1 <<>> @ns2.msft.net microsoft.com a +comments +noquestion +noauthority +noadditional +nostats +nocmd
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10742
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; ANSWER SECTION:
microsoft.com. 3600 IN A 134.170.188.221
microsoft.com. 3600 IN A 134.170.185.46
Я просто хочу получить две последние строки и ничего больше (иногда их больше или меньше). Это почти делает то, что я хочу, но он проверяет только на последнее: и некоторые ответы имеют: в последней строке (записи TXT).
[^:]+$
Любая помощь приветствуется!
^[^;]*
Я думаю, это простое регулярное выражение должно сделать это для вас. Смотрите демо.
https://www.regex101.com/r/rK5lU1/33
$re = "/^[^;]*/im";
$str = "; <<>> DiG 9.8.1-P1 <<>> @ns2.msft.net microsoft.com a +comments +noquestion +noauthority +noadditional +nostats +nocmd\n; (1 server found)\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10742\n;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0\n;; WARNING: recursion requested but not available\n\n;; ANSWER SECTION:\nmicrosoft.com. 3600 IN A 134.170.188.221\nmicrosoft.com. 3600 IN A 134.170.185.46";
preg_match_all($re, $str, $matches);