如何利用正则检测文本中是否包含不完整标记?

老磊姑娘_9831

老磊姑娘_9831

2026-06-14

657人浏览

原创

不完整html标记指以或语法中途截断的标签。可通过四类正则模式检测:行末孤立

如何利用正则检测文本中是否包含不完整标记?

检测文本中是否包含不完整 HTML 标记(比如 <div>、<code><p class="</code">、<code><img src="xxx%20%E7%AD%89%E6%9C%AA%E9%97%AD%E5%90%88%E7%9A%84%E6%A0%87%E7%AD%BE%EF%BC%89%EF%BC%8C%E4%B8%8D%E8%83%BD%E9%9D%A0%E7%AE%80%E5%8D%95%E5%8C%B9%E9%85%8D%20<.*?>%20%E2%80%94%E2%80%94%20%E9%82%A3%E5%8F%AA%E4%BC%9A%E6%89%BE%E2%80%9C%E5%B7%B2%E9%97%AD%E5%90%88%E7%9A%84%E7%9F%AD%E6%A0%87%E7%AD%BE%E2%80%9D%EF%BC%8C%E5%8F%8D%E8%80%8C%E6%BC%8F%E6%8E%89%E7%9C%9F%E6%AD%A3%E6%9C%89%E9%97%AE%E9%A2%98%E7%9A%84%E7%89%87%E6%AE%B5%E3%80%82

%E5%85%B3%E9%94%AE%E5%9C%A8%E4%BA%8E%EF%BC%9A%E4%B8%8D%E5%AE%8C%E6%95%B4%E6%A0%87%E8%AE%B0%20=%20%E5%BC%80%E5%A7%8B%E5%B0%96%E6%8B%AC%E5%8F%B7%20<%20%E5%90%8E%E7%BC%BA%E5%B0%91%E5%AF%B9%E5%BA%94%E7%9A%84%E7%BB%93%E6%9D%9F%20>%EF%BC%8C%E6%88%96%E6%A0%87%E7%AD%BE%E8%AF%AD%E6%B3%95%E4%B8%AD%E9%80%94%E6%88%AA%E6%96%AD%E3%80%82%E6%AD%A3%E5%88%99%E8%99%BD%E4%B8%8D%E8%83%BD%E8%A7%A3%E6%9E%90%20HTML%20%E7%BB%93%E6%9E%84%EF%BC%8C%E4%BD%86%E5%8F%AF%E6%9C%89%E6%95%88%E8%AF%86%E5%88%AB%E5%B8%B8%E8%A7%81%E6%96%AD%E8%A3%82%E6%A8%A1%E5%BC%8F%E3%80%82

%E2%9C%85%20%E8%AF%86%E5%88%AB%E5%85%B8%E5%9E%8B%E4%B8%8D%E5%AE%8C%E6%95%B4%E6%A0%87%E8%AE%B0%E7%9A%84%E6%AD%A3%E5%88%99%E6%80%9D%E8%B7%AF

%E4%B8%8D%E5%AE%8C%E6%95%B4%E6%A0%87%E8%AE%B0%E5%BE%80%E5%BE%80%E8%A1%A8%E7%8E%B0%E4%B8%BA%E4%BB%A5%E4%B8%8B%E5%87%A0%E7%B1%BB%E7%89%B9%E5%BE%81%EF%BC%8C%E6%AF%8F%E7%B1%BB%E5%AF%B9%E5%BA%94%E4%B8%80%E4%B8%AA%E5%8F%AF%E8%90%BD%E5%9C%B0%E7%9A%84%E6%AD%A3%E5%88%99%E6%A3%80%E6%9F%A5%EF%BC%9A

Flow Studio
Flow Studio

Flow Studio是一款AI文本写作工具,FlowGPT推出的AI长视频生成工具。

下载
  • %E5%AD%A4%E7%AB%8B%E7%9A%84%E8%B5%B7%E5%A7%8B%20<%20%E5%90%8E%E6%97%A0%E5%8C%B9%E9%85%8D%20>%0A%EF%BC%88%E5%A6%82%E6%96%87%E6%9C%AC%E6%9C%AB%E5%B0%BE%E7%AA%81%E7%84%B6%E5%87%BA%E7%8E%B0%20<span%EF%BC%8C%E6%88%96%E6%8D%A2%E8%A1%8C%E5%90%8E%E5%8D%A1%E5%9C%A8%20<a%20href=%EF%BC%89%0A%E2%86%92%20%E5%8C%B9%E9%85%8D%EF%BC%9A<[%5E>]*%24%EF%BC%88%E8%A1%8C%E6%9C%AB%E4%BB%A5%20<%20%E5%BC%80%E5%A4%B4%E4%B8%94%E6%97%A0%20>%20%E7%BB%93%E6%9D%9F%EF%BC%89%0A%E2%86%92%20%E6%B3%A8%E6%84%8F%EF%BC%9A%E9%9C%80%E9%85%8D%E5%90%88%20re.MULTILINE%EF%BC%8C%E8%AE%A9%20%24%20%E5%8C%B9%E9%85%8D%E6%AF%8F%E8%A1%8C%E6%9C%AB%E5%B0%BE

  • %E6%A0%87%E7%AD%BE%E5%B1%9E%E6%80%A7%E5%80%BC%E6%9C%AA%E9%97%AD%E5%90%88%EF%BC%88%E5%BC%95%E5%8F%B7%E7%BC%BA%E5%A4%B1%EF%BC%89%0A%EF%BC%88%E5%A6%82%20<input%20value=" abc>、<code><div class='active)
    → 匹配双/单引号开头但未闭合:<[^>]*=["'> 或更稳写法:<br><code>]*?=["'][^"'>]*$
    (排除闭合标签如

,要求引号后直到行尾都没遇到配对引号或 >)

  • 常见自闭合标签被错误截断
    (如 <img>、<code><br>、<code><input> 后直接结束,没空格也没 <code>>)
    → 可单独检查:<br> (注意:仅当后面紧接行尾或空白时才可疑;完整写法应为 <code><img> 或 <img>)

  • 标签名后紧跟非法字符或中断
    (如 <div id="</code">、<code><script type="</code">、<code><style></script> 后缺内容又没闭合)
    → 可捕获“标签名 + 空格/等号 + 行尾”:\s]*$


    ✅ 实用 Python 检测函数示例

    import re
    
    def has_incomplete_html_tag(text):
        # 多规则并行检查,任一命中即视为存在不完整标记
        patterns = [
            r']*$',                    # 行内以  结尾
            r']*?=["\'][^"\'>]*$',  # 带未闭合引号的标签
            r'\s]*$',  # 标签名后直接结束
        ]
    
        for pat in patterns:
            if re.search(pat, text, re.IGNORECASE | re.MULTILINE):
                return True
        return False
    
    # 测试
    print(has_incomplete_html_tag('<div class="alert'))      # True
    print(has_incomplete_html_tag('正常文本'))              # False
    print(has_incomplete_html_tag('@@##@@Hello</p>'))         # False

    ⚠️ 注意事项

    • 正则适合做快速初筛,不是 HTML 解析器替代品。真正健壮的校验建议用 html.parser 或 lxml 做 parse 后检查 ParseError。
    • 若文本含 JavaScript 字符串(如 var s = ">"),上述规则可能误报 —— 这时需先剥离代码块或注释,再检测 HTML 片段。<li>不要依赖单一正则覆盖所有边界情况(如嵌套 <code><script></script> 内的 ),优先保证常见断裂场景的高召回率。
    • 不复杂但容易忽略——关键是把“不完整”的语义拆解成可正则描述的文本形态,而不是试图用一个表达式包打天下。

  • 相关文章

    PHP速学视频免费教程(入门到精通)
    PHP速学视频免费教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    正则表达式

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    作者最新文章

    热门AI工具

    更多

    相关专题

    更多
    js正则表达式
    js正则表达式

    php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

    2023.06.20

    4336

    8

    正则表达式不包含
    正则表达式不包含

    正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

    2023.07.05

    2861

    4

    java正则表达式语法
    java正则表达式语法

    java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

    2023.07.05

    7902

    9

    java正则表达式匹配字符串
    java正则表达式匹配字符串

    在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

    2023.08.11

    812

    5

    正则表达式空格
    正则表达式空格

    正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.31

    520

    5

    Python爬虫获取数据的方法
    Python爬虫获取数据的方法

    Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

    2023.11.13

    673

    12

    正则表达式空格如何表示
    正则表达式空格如何表示

    正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

    2023.11.17

    386

    3

    正则表达式中如何匹配数字
    正则表达式中如何匹配数字

    正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    2023.12.06

    719

    7

    php正则表达式有哪些
    php正则表达式有哪些

    php正则表达式有"/pattern/"、"^"、"$"、"."、"[]"、"[^]"、"[a-z]"、"[A-Z]"、"[0-9]"、"\d"、"\D"、"\w"、"\W"、&a

    2024.02.23

    312

    5

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    相关下载

    更多

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    WEB前端教程【HTML5+CSS3+JS】
    WEB前端教程【HTML5+CSS3+JS】

    共101课时 | 21万人学习

    JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战

    共11课时 | 1.7万人学习

    布尔教育正则表达式视频教程
    布尔教育正则表达式视频教程

    共14课时 | 5.1万人学习

    最新文章

    更多