C# Pex正则表达式问题
我试图为执行正则表达式匹配的方法生成输入。 我从具有以下功能的代码开始:C# Pex正则表达式问题,c#,regex,pex,C#,Regex,Pex,我试图为执行正则表达式匹配的方法生成输入。 我从具有以下功能的代码开始: public bool patternMatch(string input, string pattern) { string regexPattern = Regex.Escape(pattern).Replace(@"\*", ".*").Replace(@"\?", "."); PexObserve.Value<string>("pattern", regexPattern); R
public bool patternMatch(string input, string pattern)
{
string regexPattern = Regex.Escape(pattern).Replace(@"\*", ".*").Replace(@"\?", ".");
PexObserve.Value<string>("pattern", regexPattern);
Regex regex = new Regex("^" + regexPattern + "$");
return regex.IsMatch(input);
}
公共布尔模式匹配(字符串输入,字符串模式)
{
字符串regexpatern=Regex.Escape(pattern).Replace(@“\*”,“*”).Replace(@“\?”,“);
PexObserve.值(“模式”,regexpatern);
正则表达式正则表达式=新正则表达式(“^”+regexpatern+“$”);
返回regex.IsMatch(输入);
}
对于性能问题,我正在尝试从新正则表达式(模式)
切换。
相反,我尝试使用Regex.IsMatch(输入,模式)
结果是MissingMethodException
我试着在网上寻找解决方案,发现pexforfun.com上的例子也有同样的问题()
这个问题有什么解决办法吗?我不确定使用
Regex.IsMatch()
的改进是否会产生更好的结果(更少的超时),但“昂贵”的方法很难产生有用的输入集
或者:我如何说服Pex更好/更快地使用
new Regex
表达式(即不满足边界条件)?您不必从new Regex(…).IsMatch
切换到Regex.IsMatch
——它们都将使用内部Regex缓存。事实上,静态方法确实执行新正则表达式(…)。IsMatch
-请参阅。谢谢。但是,我不能使用Regex.IsMatch(…)
仍然很遗憾