繁体   English   中英

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

[英]Regular Expression Fuzzy Autocomplete Help

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

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

使用startsWith方法。 正则表达式在这里过大。 例如

"workers".startsWith("wo")

是真实的,如所期望的。

这里有几种不同的方法,但老实说,我不确定正则表达式是否正确。 到目前为止,您还没有提供任何以代码方式提供给我们的信息,因此我只能为您提供一些提示。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM