c# - 在.net中运行多个正则表达式的有效方法
问题描述
我有一千个正则表达式,我试图以有效的方式匹配。
如果发现 这个问题,那么目的是从所有正则表达式中创建一个大型自动机。
我试过这段代码:
regexEndpoints.FirstOrDefault(x => x.UrlPathRegex.IsMatch(urlPath))
但显然它的性能很差,特别是当没有匹配任何正则表达式时,因此代码必须检查所有正则表达式。
我的问题是如何获得更好的性能以在 c# 中运行多个正则表达式?
解决方案
也许您可以并行检查:
xxxxx found = null;
Parallel.ForEach(regexEndpoints, (x, state) =>
{
if(x.UrlPathRegex.IsMatch(urlPath)){
found = x;
state.stop();
}
});
if(found != null) {
//do something
}
我的 c# 有点生疏,但你明白了。
推荐阅读
- java - 安卓。读取外部存储的文件
- vue.js - 使用 Vue.js 重用表单
- if-statement - 当输入单元格为空白时,尝试使用 IF AND 和 IMPORTXML 返回“0”
- java - 使用未声明的标记库时出现异常或通知
- c++ - 从列表的向量中擦除不能按预期工作
- sql - Dlookup 标准语法
- ios - 滑动以在新视图控制器中显示第二张图片
- python - Pip3.7.exe 不接受来自 Pycharm 的 --python 参数
- amazon-web-services - AWS-ML:如何在 AWS 平台上部署/设置我自己的 ML 算法作为付费使用 API?
- regex - 使用 Powershell 和正则表达式拆分字符串