正则表达式模糊自动完成帮助

时间:2011-08-27 20:20:45

标签: java regex autocomplete

尝试为java编写一个正则表达式,只有在该字符串包含@字符串的开头(用于自动完成)时才会返回true。因此,如果我的术语是“工作”,我会希望它为“家庭作业”返回虚假,但对于“工人​​”则是如此。对于“工人​​”来说,甚至“wo”这个词也应该是正确的。有人可以帮忙吗?任何信息非常感谢。

也不确定是否重要,他们可能会将这些特殊字符作为自动完成术语(,), - ,。,:,/,_和空格的一部分。

4 个答案:

答案 0 :(得分:4)

使用startsWith方法。 Regexes在这里有点过分。例如

"workers".startsWith("wo")

根据需要是真的。

答案 1 :(得分:1)

这里有一些不同的方法,但说实话,我不确定正则表达是否合适。到目前为止,你还没有给我们任何代码方式,所以我能给你的是一些提示。

  1. 在正则表达式中,检查字符串开头的内容的方式是^
  2. 检查字符串是否以某些内容开头的另一种更简单的方法是使用startsWith

答案 2 :(得分:1)

如果您只想匹配前缀,最好不要使用正则表达式。天真地你可以只使用String.startsWith方法,它会比类似的正则表达式快得多。

更快的选择是使用Trie这是一个示例实现:http://www.cs.duke.edu/~ola/courses/cps108/fall96/joggle/trie/Trie.java

答案 3 :(得分:0)

你为什么不这样做term.startsWith(start)

相关问题