尝试为java编写一个正则表达式,只有在该字符串包含@字符串的开头(用于自动完成)时才会返回true。因此,如果我的术语是“工作”,我会希望它为“家庭作业”返回虚假,但对于“工人”则是如此。对于“工人”来说,甚至“wo”这个词也应该是正确的。有人可以帮忙吗?任何信息非常感谢。
也不确定是否重要,他们可能会将这些特殊字符作为自动完成术语(,), - ,。,:,/,_和空格的一部分。
答案 0 :(得分:4)
使用startsWith
方法。 Regexes在这里有点过分。例如
"workers".startsWith("wo")
根据需要是真的。
答案 1 :(得分:1)
这里有一些不同的方法,但说实话,我不确定正则表达是否合适。到目前为止,你还没有给我们任何代码方式,所以我能给你的是一些提示。
^
。 startsWith
。答案 2 :(得分:1)
如果您只想匹配前缀,最好不要使用正则表达式。天真地你可以只使用String.startsWith方法,它会比类似的正则表达式快得多。
更快的选择是使用Trie这是一个示例实现:http://www.cs.duke.edu/~ola/courses/cps108/fall96/joggle/trie/Trie.java
答案 3 :(得分:0)
你为什么不这样做term.startsWith(start)
?