编写一个 select 字符串的正则表达式
Writing a regular expression that will select a string
我有一个包含蛋糕名称的 .txt(下面 * 导出自...)以及它从哪里导出。我在 WPF/C# 中执行 UI,我有一个文本框,您可以在其中输入字符串并单击 "search" 按钮。我想写一个正则表达式,它只会在蛋糕的整个名称中查找该字符串,并显示带有该字符串的所有蛋糕名称。我没有看到具有这些名称的模式。
例如:
输入 --> 在我输入的文本框中:草莓
输出 --> Strawberry Shortcake , Eva's Strawberry Cake
这是我的 .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
对于这个简单的场景,您需要一个正则表达式。
假设你的蛋糕列表存储在一个列表中,那么你需要做的就是这样
List<string> searchCakes(string keyword, List<string> allCakes) {
return allCakes.Where(cake=> cake.Contains(keyword)).ToList()
}
我不知道你的蛋糕清单有多大,但你描述问题的方式根本不需要 RegEx。默认情况下,RegEx 一次计算一行——除非您特别指定。
正则表达式 ".*Strawberry.*"
与 mystring.Contains("Strawberry")
基本相同。 Contains()
方法 比正则表达式选项快 很多,如果列表非常大,这会产生很大的不同。
您需要管理的是蛋糕列表。您可以读取文件一次并将蛋糕列表存储在列表中,或者如果文件很大,您可以将其放入数据库或 Lucene 索引中。
我有一个包含蛋糕名称的 .txt(下面 * 导出自...)以及它从哪里导出。我在 WPF/C# 中执行 UI,我有一个文本框,您可以在其中输入字符串并单击 "search" 按钮。我想写一个正则表达式,它只会在蛋糕的整个名称中查找该字符串,并显示带有该字符串的所有蛋糕名称。我没有看到具有这些名称的模式。
例如:
输入 --> 在我输入的文本框中:草莓
输出 --> Strawberry Shortcake , Eva's Strawberry Cake
这是我的 .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
对于这个简单的场景,您需要一个正则表达式。
假设你的蛋糕列表存储在一个列表中,那么你需要做的就是这样
List<string> searchCakes(string keyword, List<string> allCakes) {
return allCakes.Where(cake=> cake.Contains(keyword)).ToList()
}
我不知道你的蛋糕清单有多大,但你描述问题的方式根本不需要 RegEx。默认情况下,RegEx 一次计算一行——除非您特别指定。
正则表达式 ".*Strawberry.*"
与 mystring.Contains("Strawberry")
基本相同。 Contains()
方法 比正则表达式选项快 很多,如果列表非常大,这会产生很大的不同。
您需要管理的是蛋糕列表。您可以读取文件一次并将蛋糕列表存储在列表中,或者如果文件很大,您可以将其放入数据库或 Lucene 索引中。