1,979
社区成员
发帖
与我相关
我的任务
分享
//分别能匹配内容如下2行
'a"sd'
"a'sd"
//我想使用反向引用,看下面的错误正则,但是这个正则能表达我的意思。
(["'])[^\1]+\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
*/
}