首页 > 解决方案 > 用于以随机顺序匹配强制和可选字符的正则表达式

问题描述

我需要一个正则表达式来通过 Visual Studion 搜索引擎(可能通过 C#)在 HTML 元素之间查找文本。

在某种程度上可以正常工作的是:

>\s*([\w])+\s*<

但它必须匹配以下所有“asdf”:

<element>asdf
  <element>asdf.</element>asdf
  <element />
asdf asdf
</element>
<element>
  asdf!
</element>

它不应该找到两个标签之间的空格,这个例子应该匹配NOTHING:

<element>

  <element>  </element>
</element>

我特别需要的是一个正则表达式,它匹配:

我不想得到包含不带 \w 的特殊字符的匹配项。

另一个根本不起作用的是:

>\s*((?=[\w]+)(?=[ ?=()!"_]*))\s*<

满足我需求的正确方法是什么?

太感谢了!

标签: regexrandom

解决方案


您可以在匹配 s 之间的文本之前使用一次前瞻><

>(?=[^<]*\w).*?<

(使用“s”标志,所以点匹配换行符 - 或者,使用类似的东西[\S\s]*?代替.*?

前瞻确保在>和之间有一个单词字符<。然后,匹配并延迟重复任何字符,直到到达<.

https://regex101.com/r/cqinyh/2


推荐阅读