Справка по нечеткому автозаполнению регулярных выражений - PullRequest
1 голос
/ 28 августа 2011

Попытка написать регулярное выражение для java, которое будет возвращать ТОЛЬКО ТОЛЬКО, если включен термин @ в начале строки (будет использоваться для автозаполнения).Поэтому, если бы мой термин был «работа», я бы хотел, чтобы он означал «ложное» для «домашнее задание», но верно для «рабочие».Даже термин «горе» должен быть верным для «рабочих».Кто-нибудь может помочь?Любая информация высоко ценится.

Также не уверен, что если это имеет значение, они могут содержать эти специальные символы как часть термина автозаполнения (,), -,.,:, /, _ И пробелов.

Ответы [ 4 ]

4 голосов
/ 28 августа 2011

Используйте метод startsWith. Регексы здесь излишни. Например

"workers".startsWith("wo")

истинно, как требуется.

1 голос
/ 28 августа 2011

Если вы хотите сопоставлять только префиксы, лучше не использовать регулярные выражения. Наивно вы могли бы просто использовать метод String.startsWith, и это было бы намного быстрее, чем подобное регулярное выражение.

еще более быстрый вариант - использовать Trie , вот пример реализации: http://www.cs.duke.edu/~ola/courses/cps108/fall96/joggle/trie/Trie.java

1 голос
/ 28 августа 2011

Здесь есть несколько разных подходов, но, если честно, я не уверен, что регулярное выражение является правильным. Вы до сих пор не дали нам ничего общего с кодом, поэтому я могу лишь дать вам несколько подсказок.

  1. В регулярном выражении способ проверки чего-либо в начале строки - ^.
  2. Другой, более простой способ проверить, начинается ли строка с чего-либо, - использовать startsWith.
0 голосов
/ 28 августа 2011

Почему бы тебе просто не сделать term.startsWith(start)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...