【发布时间】:2011-03-25 13:26:29
【问题描述】:
有人知道用于匹配人类可读模式的 C# 库吗?类似于正则表达式,但更友好?
给定一个字符串值,我希望能够将其与以下模式匹配:
(this AND that) OR "theother"
其中 "this" 和 "that" 是 LIKE 表达式,而 "theother" 由于引号而完全匹配。
更新: 好的,只是为了更清楚一点。我想要这个的原因是允许最终用户输入他们自己的模式,作为字符串值。所以我追求的东西与正则表达式的工作方式类似,但使用我的用户很容易理解的人类可读字符串
var pattern = "(this AND that) OR \"theother\""; // Could be fetched from textbox
var match = SomeLib.IsMatch(myString, pattern);
【问题讨论】:
-
您有什么要求?我不知道任何这样的库,但我认为如果你清楚你的要求,很容易在正则表达式匹配上编写一个包装器,或者简单地使用正则表达式本身。
-
你的意思是,类似于用于声明正则表达式的流畅接口吗? flimflan.com/blog/ReadableRegularExpressions.aspx
-
@MattC 优秀的链接可以作为答案
-
我正在开发一个系统,该系统要求用户插入自定义查询来过滤他们将收到的数据(想想电子邮件过滤器)。我的用户不太可能知道 RegEx,但是上面突出显示的内容会更容易向他们解释。与电子邮件过滤器类似,对象的各种属性将与查询匹配,如果匹配成功,用户将收到该信息,否则将被丢弃。
-
很遗憾我只能提出这个问题一次。这是我们长期以来一直需要的东西。
标签: c# .net regex expression-trees