在php中使用正则表达式的不同div标记

在php中使用正则表达式的不同div标记,php,Php,html格式: <div class="student_information"> <tr> <div class="admin"><td>141201A</td></div> <div class="name"><td>Sally</td></div> <div class="hp"&

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>
我想得到div和td之间的内容。我知道还有其他选择,比如xpath和DOM Document,它们更合适,但是我的项目要求我们在php中使用正则表达式,否则它将影响项目的后期,因此需要任何帮助。谢谢使用php

使用

要删除html标记,请使用(因为它使用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]);

感谢您的帮助,但是我需要使用正则表达式(regex)来获得输出。是否要匹配直接在没有td的div中包含内容的情况,例如:
my content
?我需要没有td的内容,因此即使在这种情况下(我的示例),您仍然需要匹配该div的内容?在这种情况下(你的例子)我仍然需要匹配divA
div
标记的内容,因为
tr
标记的直接子项不是有效的HTML5代码,相反,你可以将你的div放在一个td标记中。你有没有办法以php形式从数据库加载$str(html)?
<?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
<?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
$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
)