我有一个枚举,我将其用作程序的固定参数值,并使用regex清除用户输入。
我希望用户能够输入其中一个值的部分匹配项,并接受该值而不是其他值。
例如,如果枚举为:
end
end now
start
swarm
condition
然后用户输入
s
st
sta
etc...
没关系,因为它是开始的一部分; 但是如果用户输入
ending
这不行,因为它不属于任何其他词语。
我知道我可以在(s|st|sta|star|start)
组中指定每个排列,并且可以完成工作,但是很难对大约12个不同的值执行此操作,而且很难做到“难看” ...
是否有更简单的方法来匹配固定值或这些固定值的子项?
我不是不是正在搜索特定于一种引擎/语言的内容(例如Java代码。)
答案 0 :(得分:-1)
正则表达式不是这项工作的正确工具。
只需找到用户输入的长度(称为N),然后遍历有效值并查看该值的前N个字符是否与输入匹配。
如果只有一项匹配,那么您将获得一个结果!如果有多个匹配项,您将需要用户提供更多字母来标识正确的字母。如果没有匹配项,则无效。