1

我在 XML 文件中有一个基于通配符的模式列表。如果输入字符串与 XML 文档中存在的模式匹配,则将执行特定操作。

我确实找到了这里提到的方法http://www.codeproject.com/KB/recipes/wildcardtoregex.aspx但在这种情况下,我需要为我试图避免的 XML 中的每个条目创建一个 RegEx 对象。

让我知道有没有更好的方法在 .net 中进行通配符搜索

4

2 回答 2

1

我的就寝时间已经过去了,所以我对这个答案可能听起来很古怪。

在我看来,您的设置方式错误:您正在将输入字符串与模式列表进行匹配。从逻辑上讲,您应该将列表中的每个模式与输入字符串进行匹配并确定匹配。通过解析 XML 文件来构造 Regex 模式数组应该非常简单。然后您可以遍历数组并将每个正则表达式与您的输入字符串匹配。

此外,为什么您需要通配符?通配符可以被认为是 Regex 的一个子集,因此您已经将通配符匹配的所有功能封装在 Regex 对象中。

也就是说,有关输入/通配符类型的更多数据可能有助于理解您的问题。

于 2009-03-19T21:04:54.313 回答
1

如果您希望评估文档中的每个模式以匹配输入字符串,您必须为每个模式创建一个正则表达式,就像您提到的那样。没有捷径。

我猜你担心性能。你确定这是个问题?如果是这样,您应该尝试完全找到不同的方法。

你要匹配很多输入字符串吗?在这种情况下,您应该保留您的正则表达式(例如在一个列表中),而不是每次都创建它们。正则表达式可以重复使用。

否则,我认为您提出的方法没有什么大问题。

于 2009-03-19T21:22:38.560 回答