编写将选择字符串的正则表达式

时间:2017-03-02 01:14:05

标签: c# regex wpf regular-language

我有一个包含蛋糕名称的.txt(下面*从...导出)以及从哪里导出。我在WPF / C#中创建了一个用户界面,我有一个文本框,你可以在其中输入一个字符串并点击"搜索"按钮。我想写一个普通的expresion,它只会在蛋糕的整个名称中查找该字符串,并显示带有该字符串的所有蛋糕名称。我没有看到带有这些名字的模式。

例如:

输入 - >在文本框中输入:Strawberry

输出 - >草莓脆饼,伊娃的草莓蛋糕

这是我的.txt文件:

                * Exported from MasterCook *

                        Blueberry Crunch Coffee Cake

                * Exported from MasterCook *

                        Filled Berlin Doughnuts (Bismarks)

                * Exported from MasterCook *

                        Strawberry Shortcake

                * Exported from MasterCook *

                         Eva's Strawberry Cake

                * Exported from MasterCook *

                        Fresh Apple Cake #3

                * Exported from MasterCook *

                         Frozen Lady Heath Dessert **

                * Exported from MasterCook *

                        Grandma Stefan's German Cheese Torte

2 个答案:

答案 0 :(得分:1)

我不知道你的蛋糕清单有多大,但是他们已经描述了这个问题根本不需要RegEx。默认情况下,RegEx一次评估一行 - 除非您明确告知其他行。

正则表达式mystring.Contains("Strawberry")moment("01/01/2016 Fri", "MM-DD-YYYY ddd)基本相同。 Contains()方法> 比正则表达式选项更快,如果列表非常大,这可能会产生很大的不同。

你需要管理的是蛋糕清单。您可以读取文件一次并将列表存储在列表中,或者如果文件很大,您可以将其放在数据库或Lucene索引中。

答案 1 :(得分:0)

你需要一个正则表达式来处理这个简单的场景。

假设您的蛋糕列表存储在列表中,那么您需要做的就是这样

List<string> searchCakes(string keyword, List<string> allCakes) {
    return allCakes.Where(cake=> cake.Contains(keyword)).ToList()
}