В html-форме:
<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr>
Output I wanted: 141201A Sally Tan 83556112 141201A@gmail.com
Я хочу получить контент между div и td. Я понимаю, что есть другие варианты, такие как xpath и DOM Document, которые были бы более подходящими, однако мой проект требовал от нас использования регулярного выражения в php, иначе это повлияет на более позднюю часть проекта, поэтому любые действия необходимы. благодаря
Использовать preg_replace ()
<?php $str = '<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr>'; $content = preg_replace('/<[^>]*>/', '', $str); $content = trim(preg_replace('/\s\s+/', ' ', str_replace("\n", " ", $content))); $arr = explode(' ', $content); if (! empty($arr)) { foreach ($arr as $elem) { echo $elem . "<br/>"; } } ?>
Вывод:
141201A Sally 83556112 141201A@gmail.com
Использовать php strip_tags ()
<?php $str = '<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr>'; $strpped = strip_tags ($str); $strpped = trim(preg_replace('/\s\s+/', ' ', str_replace("\n", " ", $strpped))); echo $strpped; ?>
Вывод:
141201A Sally 83556112 141201A@gmail.com
Для удаления html-тегов используйте php strip_tags ()
Вы можете использовать preg_match_all (как он использует regex) следующим образом:
<?php $str = '<div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"><td>83556112</td></div> <div class="email"><td>141201A@gmail.com</td></div> </tr>'; preg_match_all('/<td>[a-zA-Z0-9.@]+<\/td>/', $str, $matches); print_r($matches[0]);
Результат:
Array ( [0] => 141201A [1] => Sally [2] => 83556112 [3] => 141201A@gmail.com )