我有一个字母数字值列表,我需要使用“大于或等于”和/或“小于或等于”运算符进行搜索。
要搜索的值的示例列表:
一个
b
ç
d
Ë
f
用户输入b,并指定返回“大于或等于”它的所有内容。
预期结果:
b
ç
d
Ë
f
这是什么正则表达式?
编辑:我建议使用正则表达式,因为用户可以输入通配符。
P.S。这不是作业:)
提前致谢!
答案 0 :(得分:4)
这不是你应该使用正则表达式的东西。
遍历列表并检查每个项目以查看“大于或等于”用户提供的项目。如果您使用的是.NET 3.5,那么您可能会发现LINQ很有用,尤其是Enumerable.Where
扩展方法。
如果您真的想使用正则表达式,可以使用[_-f]
,其中下划线必须替换为用户输入的字母,但这仅适用于您的特定示例。将其推广到任何长度的任何字符串都会更复杂(并且生成的正则表达式会非常混乱)。
答案 1 :(得分:0)
另一个答案的替代方法是保持您的值列表排序,并使用二进制搜索找到合适的位置。但请注意,对于值列表,这实际上可以较慢,然后将列表中的所有内容与阈值进行比较。