各路大神,求一个忽略html标签匹配字符串的正则表达式 5C

譬如我要匹配一个字符串“请拨打110求助”,这个正则不仅要匹配“请拨打110求助”,
也要能匹配包含html标签的字符串(中间的|去掉,防止被过滤用的)如:“请拨打<|span>110<|/span>求助“

7个回答

单纯一个正则表达式肯定搞不定,比如(java)需要先定义好所有的html标签(即正则匹配的标签),然后根据正则表达过滤掉对应的字符,提取所匹配的字符即可实现。望采纳!

chenzhiyong12
快进小树林 我需要的就是那条正则表达式,如果span里面有style这些属性,那正则表达式是不是又要另外写一条?
接近 2 年之前 回复

我需要的就是那条正则表达式,如果span里面有style这些属性,那正则表达式是不是又要另外写一条?

使用正则表达式去掉html标签的方法常用的正则表达式是:/<[^<]+?>/g
1、定义含有html标签的字符串:
$text = '

Test paragraph.

<!-- Comment --> Other text';

2、定义正则表达式并替换
$val = preg_replace('/<[^<]+?>/g', ' ', $row_get_Business['business_description']);

3、截取指定长度
$businessDesc = substr(val,0,110);

ambit_tsai
ambit_tsai-微信 回复chenzhiyong12: 我建议还是先替换<span>之类的标签为空,然后进行匹配,这样最方便。
接近 2 年之前 回复
chenzhiyong12
快进小树林 我想要的是效果是匹配不是替换,入参“bcd”匹配“ab<span>c</span>defg”能匹配出一个结果,这样能做到吗?谢谢了
接近 2 年之前 回复

var reg=/^(\d)<\/span>+$/g,你的意思 是不是 要 匹配span的正则 表达式?//g代表全局,\s是空格,(.*?)有一个多了无限 ,[' "]单引号或者双引号 ,\w代表 字母或者 数字 或者 下划线 \d是 数字 ,^$是从头到尾巴匹配的

chenzhiyong12
快进小树林 不是的,比如入参“bcd”匹配“ab<span>c</span>defg”能匹配出一个结果,这样能做到吗?如果一定要说替换的话,把“b<span>c</span>d”替换成“bcd”也可以,谢谢了
接近 2 年之前 回复

var reg=/^(\d)<\/span>+$/g

这个要具体面对不同的格式才能做不同的格式处理

package com.huowolf;

import java.util.Scanner;

public class Demo8 {

public static void main(String[] args) {  
    Scanner sc = new Scanner(System.in);  
    String s = null;  

    while(true) {  
        s=sc.nextLine();  
        System.out.println(IsHTML(s));  
    }  
}  

public static boolean IsHTML(String s) {  
    String reg = "<(\\w+?>).+?</\\1||<[^>]+?(\\s\\w+?=.+?)*/>";  
    return s.matches(reg);  
}  

}

自己码的,仅供参考!!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐