2

一个两部分的问题:

  1. 是否有任何理论上的正则表达式永远不会匹配任何字符串(使用通用语法而没有现代正则表达式匹配器提供的任何花哨的东西)?
  2. 有没有一种简单的方法可以使用 C# 的 Regex 语法来创建一个永远不会匹配任何字符串的正则表达式(这一次,所有花哨的东西包括在内)?

注意:我不是指匹配空字符串(这很容易,只是"")。

4

3 回答 3

8

如果没有多行模式,结尾通常不会出现在开头之前:

$.^

或者更简单地说,再次没有多行模式:

$.

使用环视,你可以做各种矛盾的事情:

(?=a)(?=b)

这迫使一个角色同时成为两种不同的事物,这当然是不可能的。

于 2012-11-28T13:53:46.660 回答
5

例如,您可以使用相互矛盾的lookbehinds

\w(?<!\w)

这里\w将匹配任何单词字符,并且lookbehind(?<!\w)将确保最后一个字符不是单词。

于 2012-11-28T13:50:41.580 回答
4

就像你可以匹配任何字符一样[\s\S],你不能匹配任何字符[^\s\S](或[^\w\W]等)。

于 2012-11-28T13:52:11.227 回答