VSCode正则表达式检索:如何使用正则表达式匹配包含特定属性但排除另一个属性的HTML标签


VSCode正则表达式检索:如何使用正则表达式匹配包含特定属性但排除另一个属性的HTML标签

示例:<vxe-column.+time(?!.*\bformatter\b).+

匹配结果:

VSCode正则表达式检索

这个正则表达式用于匹配类似 <vxe-column> 标签中包含 time 但不包含 formatter 的情况。让我们逐步解释每一部分的含义:

正则表达式:

Markup 全选
<vxe-column.+time(?!.*\bformatter\b).+

解释:

  1. <vxe-column

    • 这部分匹配以 <vxe-column 开头的字符串。这是在匹配 vxe-column 标签的开头部分。
  2. .+

    • .:匹配任意字符(除了换行符)。
    • +:匹配前面的字符一次或多次。这里的 .+ 意味着匹配任意字符,至少一个字符,用于处理 vxe-column 标签的属性内容。

    这部分确保 <vxe-column 标签后面有一些内容(如标签的属性)。

  3. time

    • 匹配标签内容中的 time 字符串。这表示正在查找含有 time 的部分,可能是某个属性值或文本内容。
  4. (?!.*\bformatter\b)

    • 这是一个负向先行断言,用于确保匹配的 time 之后没有 formatter
      • (?!...):表示负向先行断言。意思是如果某个部分的后面出现了 formatter,则不匹配。
      • .*:匹配任意字符零次或多次。
      • \bformatter\b:完整匹配 formatter 单词(\b 是单词边界符,确保匹配的是一个完整的单词)。

    这部分确保在匹配到 time 后,后续的内容中不包含 formatter,因此它只匹配不含 formatter 的标签。

  5. .+

    • 再次匹配任意字符至少一个,用于确保匹配标签的其余部分。

总体作用:

这个正则表达式用于匹配 HTML 标签 <vxe-column>,并且在标签的属性或内容中:

  • 必须包含 time 字符串。
  • 不能包含 formatter 字符串。

示例匹配

Markup 全选
<vxe-column prop="createdTime" />

这行代码会被匹配,因为它包含 time,并且没有 formatter

示例不匹配

Markup 全选
<vxe-column prop="createdTime" formatter="formatTime" />

这行代码不会被匹配,因为它包含 formatter,违反了负向先行断言的规则。

 

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:VSCode 正则表达式跨行搜索
下一篇:C# XML 序列化与反序列化详解及实战示例
评论列表

发表评论

评论内容
昵称:
关联文章

YES-CMS内容管理系统 售价
PVE硬盘对应SATA口查询

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码