我的文字包含许多标签,例如:
function get_chat_list($sender){
global $conn;
$sqlCode = "SELECT DISTINCT sender FROM chat WHERE connector LIKE '%$sender%' ";
$sqlCode1 = "SELECT DISTINCT reciever FROM chat WHERE connector LIKE '$sender%'";
var_dump($sqlCode1);
$run = mysqli_query($conn,$sqlCode);
$run1 = mysqli_query($conn,$sqlCode1);
var_dump($run1);
$recievers = array();
while($reciever = mysqli_fetch_assoc($run)){
if($reciever['sender'] == $sender){
}else{
$recievers[] = array('reciever'=>$reciever['sender']);
}
}
while($reciever = mysqli_fetch_assoc($run1)){
if($reciever['reciever'] == $sender){
}else{
$recievers[] = array('reciever'=>$reciever['reciever']);
}
}
return array_unique($recievers);
}
我需要删除标签和标签之间的所有文本 在这个例子中,我应该得到“主要文本”,因为它是唯一没有标记的文本。
我试过
<b class="bold"> some bold text </b> main text
<li>list text</li>
<script> script text </script>
但它会删除所有标签而不是它们之间的文字
我试过这个
Regex.Replace(input, "<.*?>", String.Empty);
与
var regEx = new Regex(@"<(.+).*>.*<\/\1>");
var result = regEx.Replace(input, string.Empty);
我得到了
<b class="bold"> bold </b>
main text
<ul>
<li> list </li>
<li> list2 <li>
</ul>
答案 0 :(得分:1)
我不确定为什么这些问题在没有评论的情况下被否定,但写得不是很好,但很清楚他想做什么。
你走了:
var regEx = new Regex(@"<(.+).*>.*<\/\1>");
var result = regEx.Replace(input, string.Empty);
请记住,在有效的HTML文档中,所有内容都将包含在某种标记中,因此您的结果应该始终没有。
警告:这绝不是一个全面或完整的解决方案,但它是一个很好的基础,从你的实际输入数据看起来开始。