[^]在C#regex中与什么匹配?
我在看别人的正则表达式。。。我可以看出我正在处理一个积极的后视,但我不确定它应该匹配什么:[^]在C#regex中与什么匹配?,c#,regex,C#,Regex,我在看别人的正则表达式。。。我可以看出我正在处理一个积极的后视,但我不确定它应该匹配什么:(?字符) 我的解释哪里找不到标记?由于它是一个无效的模式,[^]与任何字符都不匹配。甚至根本没有尝试过,它在解析阶段失败。[^>]另一方面,是一个否定的字符类,匹配任何字符,但 [^]在除ECMAScript之外的大多数正则表达式样式中是无效的模式。它将在.NET中引发未终止的[]集异常 要匹配任何字符,请使用(?s:)(带有RegexOptions.Singleline选项的模式) (?The[^]不匹
(?
字符)
我的解释哪里找不到标记?由于它是一个无效的模式,
[^]
与任何字符都不匹配。甚至根本没有尝试过,它在解析阶段失败。[^>]
另一方面,是一个否定的字符类,匹配任何字符,但
[^]
在除ECMAScript之外的大多数正则表达式样式中是无效的模式。它将在.NET中引发未终止的[]集
异常
要匹配任何字符,请使用(?s:)
(带有RegexOptions.Singleline
选项的
模式)
(?The[^]
不匹配任何字符,因为它是一个无效的模式。它甚至根本没有尝试过,在解析阶段失败。[^>]
另一方面,是一个与除
之外的任何字符匹配的否定字符类
[^]
在除ECMAScript之外的大多数正则表达式样式中是无效的模式。它将在.NET中引发未终止的[]集
异常
要匹配任何字符,请使用(?s:)
(带有RegexOptions.Singleline
选项的
模式)
(?这是一个无效的模式,与大多数正则表达式风格(ECMAScript除外)一样。它将抛出未终止的[]集
异常。要匹配任何字符,请使用(?s:)
(带有RegexOptions的
模式。单线
选项)@WiktorStribiżew谢谢,你说得对,我给出的表达式无法编译。我从源正则表达式中添加了更多上下文:(?是的,那么“C#正则表达式中什么匹配?”的答案是它不匹配,因为它是无效模式。它甚至根本没有尝试,在解析阶段失败。并且[^>]
是一个与任何字符匹配的否定字符类,但是
@WiktorStribiżew可以在答案中随意删除它,我会接受它。关于我对正则表达式的误解的任何进一步指导(更新如上)我也很感激!这实际上是在LINQPad中编译的,因为.NET将]
后面的^
解释为一个文本,所以这整件事变成了一个大字符类,除了]
,)
,\t
,{
,等等。直到最后一个]
,所有这些都被隐藏在一个lookback中。但当然,我不认为这是目的。这是一个无效的模式,因为除了ECMAScript之外,它在大多数正则表达式中都是无效的。它将抛出Unterminated[]set
异常。要匹配任何字符,请使用(?s:)
(带有RegexOptions.Singleline
选项的
模式)。@WiktorStribiżew谢谢,你是对的,我给出的表达式无法编译。我从源正则表达式添加了更多上下文:(?是的,那么“C#regex中[^]匹配什么?”它不匹配任何字符,因为它是一个无效的模式。它甚至没有尝试过,它在解析阶段失败。[^>]
是一个否定的字符类,它匹配任何字符,但是
@WiktorStribiż我们可以在回答中随意删除它,我会接受它。关于我对正则表达式的误解的任何进一步指导(在上面更新)也会很感激!这实际上是在LINQPad中编译的,因为.NET将]
后面的^
解释为一个文本,所以这整件事变成了一个大字符类,除了]
,)
,\t
,{
,等等。直到最后的]
,所有的一切都在后面看。当然,我不认为这是目的。你在哪里看到[^>]在给定的模式中?如果您谈论的是一个恰好包含>,请说出来。@BoltClock它在中。实际上,我只是想提供一个有效的简单求反字符类的示例。@WiktorStribiżew我想您看到的是[>]
而不是[^>]
。您在哪里看到[^>]在给定的模式中?如果您谈论的是一个恰好包含>,请这样说。@BoltClock它在中。实际上,我只是想提供一个有效的简单求反字符类的示例。@WiktorStribiżew我想您看到的是[>]
而不是[^>]
。
^
]
\
-