【发布时间】:2012-11-05 16:06:28
【问题描述】:
我在这里有一个数据库,其中包含我需要应用于一堆字符串的某些规则,它们是可以出现在字符串中的表达式。它们表示为
(word1 AND word2) OR (word3)
我无法对它们进行硬编码(因为它们可能会在数据库中更改),因此我考虑以编程方式将这些表达式转换为正则表达式模式。
有没有人做过这样的任务,或者知道如何以最好的方式做到这一点? 我不确定如何处理更复杂的表达式,如何将它们分开等等。
编辑:我在 VisualStudio / .NET 中使用 C#。
数据基本上是目录路径,客户想要组织他们的文档,所以我拥有的字符串是路径,数据库中的表达式可能如下所示:
(office OR headquarter) AND (official OR confidential)
所以如果文件的目录路径包含office和confidential,它应该匹配。
希望这能让它更清楚。
编辑2:
这里有一些虚拟的例子:
路径可能如下所示:
c:\documents\official\johnmeyer\court\out\letter.doc
c:\documents\internal\appointments\court\in\september.doc
c:\documents\official\stevemiller\meeting\in\letter.doc
还有这样的表达方式:
(meyer or miller) AND (court OR jail)
所以这个表达式将匹配第一个路径/文件,但不匹配第二个和第三个。
【问题讨论】:
-
哪种语言,你将如何使用表达式?
-
您能否提供几行实际数据以及您希望正则表达式模式匹配的内容?
-
你能告诉我们应该匹配的示例列表和不应该匹配的其他列表吗?
-
很遗憾,该列表包含机密内容。
-
老兄,我们不需要您的机密资料,而是您可以生成的虚拟示例以使您的问题更易于理解...