C#中的通配符搜索

时间:2009-03-19 20:38:41

标签: c# regex search wildcard

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

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

让我知道有没有更好的方法在.net

中进行外卡搜索

2 个答案:

答案 0 :(得分:1)

这已经过了我的睡觉时间,所以我对这个答案听起来很古怪。

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

另外,为什么你需要通配符?通配符可以被视为正则表达式的一个子集,因此您已经具有封装在Regex对象中的所有通配符匹配功能。

尽管如此,有关输入/通配符类型的更多数据可能有助于理解您的问题。

答案 1 :(得分:1)

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

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

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

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