正则表达式,用于以随机顺序匹配必需和可选字符

时间:2018-09-11 06:46:56

标签: regex random

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

在某种程度上可行的是:

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

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

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

它不应找到的是2个标记之间的空白,此示例应与NOTHING匹配:

<element>

  <element>  </element>
</element>

我特别需要匹配的正则表达式:

  • 以>
  • 开头
  • 以<< / li>结尾
  • 在这至少一个字字符(\ w)之间是强制性的
  • 一堆特殊字符是必需的(_。?,!SPACE)是可选的
  • 在开始/结束和内容之间可能存在不可预测的空格长度(意味着长度也可能为零)
  • 开始和结束之间的字符顺序是绝对随机的

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

另一种根本不起作用的方法是:

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

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

非常感谢您!

1 个答案:

答案 0 :(得分:1)

您可以在><之间匹配文本之前先行使用

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

(使用“ s”标志,因此点与换行符匹配-或者使用类似[\S\s]*?而不是.*?的东西)

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

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