. net中的正则表达式问题
本文关键字:问题 正则表达式 net | 更新日期: 2023-09-27 18:18:14
我需要这个正则表达式='''"([^'']*)'''"
,但是Visual Studio告诉我:
parsing "='"([^']*)'"" - Unterminated [] set.
但是,如果我使用这个正则表达式与空格字符后''
像这个='''"([^'' ]*)'''"
它工作,但没有找到像tag='"String with space'"
的数学。有人知道如何解决这个问题吗?
您使用的是常规字符串字面值,因此'']
对于regex引擎意味着']
。您的字符串包含[
(开始字符类括号),但没有结束字符。
当你添加一个空格时,你只需要将空格与字符类匹配。
要匹配=
后面带引号的字符串,请使用
var rx = @"=""((?:[^""'']*(?:''.[^""'']*)*))""";
参见regex demo和IDEONE demo。
这个regex是用一个逐字字符串字面值声明的(这样我们就只用一个'
来转义regex元字符),并且也会正确匹配所有转义的序列。
如果不需要用转义序列匹配类c字符串,只需使用
var rx = "='"([^'"]*)'"";
查看这个regex演示(我认为使用常规字符串文字看起来更好-太多双引号)