1,979
社区成员




//分别能匹配内容如下2行
'a"sd'
"a'sd"
//我想使用反向引用,看下面的错误正则,但是这个正则能表达我的意思。
(["'])[^\1]+\1
//我想使用 \1 取非。
//如下貌似也不行
(["'])(!(\1))+\1
void Main()
{
Regex reg=new Regex(@"^([""'])[^\1]+?\1$");
string[] test=
{
"'a\"s\\1d'",
"'a\"\\s1d'",
"'a\"sd'",
"\"a'sd\""
};
foreach(string s in test)
Console.WriteLine("{0}:\t{1}",s,reg.IsMatch(s));
/*
'a"s\1d': True
'a"\s1d': True
'a"sd': True
"a'sd": True
*/
}
void Main()
{
Regex reg=new Regex(@"([""'])[^\1]+?\1");
string[] test=
{
"'a\"s\\1d'",
"'a\"\\s1d'",
"'a\"sd'",
"\"a'sd\""
};
foreach(string s in test)
Console.WriteLine("{0}:\t{1}",s,reg.IsMatch(s));
/*
'a"s\1d': True
'a"\s1d': True
'a"sd': True
"a'sd": True
*/
}