string strTemp="已知关于x的方程(m-1)x<sup>2</sup>-2m+m≠0有两个不相等的实数根x<sub>1</sub>、x<sub>2</sub>;<br/>(1)求m的取值范围;<br/>(2)若(x<sub>1</sub>-x<sub>2</sub>)<sup>2</sup>=8,求m的值.";
string strReg=@"(\+|\-|(\d+\.\d+)|[a-zA-Z0-9]|\d|(\([^\)]*\)))*([a-zA-Z0-9|\-|∠|≌|≠|=|△|⊥|\×|//|⊙|\(|\)|\[|\]|\+|()]*((<sub>[^\<]*?<\/sub>[a-zA-Z0-9]*)|(<sup>[^\<]*?<\/sup>\w*))+(\*?|\+|\-|[a-zA-Z0-9]?|∥|\:|\·|>|≠|=|÷|―|\×|>|≥|(,\d)|\)|\.|(\([^\)]*\))|\||\[|\])+)+";
MatchCollection mc = Regex.Matches(strTemp,strReg, RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
string str=m.Groups[0].Value;
//Console.WriteLine(str);
MessageBox.Show(str);
}我的正则表达式在MTracer那个工具中测试是完全没有问题的,但是在程序中就不对了希望匹配出
(m-1)x<sup>2</sup>-2m+m≠0
x<sub>1</sub>
x<sub>2</sub>
(x<sub>1</sub>-x<sub>2</sub>)<sup>2</sup>=8
string strReg=@"(\+|\-|(\d+\.\d+)|[a-zA-Z0-9]|\d|(\([^\)]*\)))*([a-zA-Z0-9|\-|∠|≌|≠|=|△|⊥|\×|//|⊙|\(|\)|\[|\]|\+|()]*((<sub>[^\<]*?<\/sub>[a-zA-Z0-9]*)|(<sup>[^\<]*?<\/sup>\w*))+(\*?|\+|\-|[a-zA-Z0-9]?|∥|\:|\·|>|≠|=|÷|―|\×|>|≥|(,\d)|\)|\.|(\([^\)]*\))|\||\[|\])+)+";
MatchCollection mc = Regex.Matches(strTemp,strReg, RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
string str=m.Groups[0].Value;
//Console.WriteLine(str);
MessageBox.Show(str);
}我的正则表达式在MTracer那个工具中测试是完全没有问题的,但是在程序中就不对了希望匹配出
(m-1)x<sup>2</sup>-2m+m≠0
x<sub>1</sub>
x<sub>2</sub>
(x<sub>1</sub>-x<sub>2</sub>)<sup>2</sup>=8
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货