Я хочу выполнить запрос в SQLite
с помощью regexp
с помощью Android
.
Как это сделать?
Как запустить запрос с regexp в Android
Ответ 1
К сожалению, не похоже, что Android в настоящее время предоставляет вам возможность вводить пользовательскую функцию в sqlite, что вам нужно, чтобы сделать работу REGEXP
(в частности, вам понадобится пользовательская функция с именем regexp()
) - поэтому вам может потребоваться более широко выбрать (с условием LIKE
, которое больше, чем требуемое регулярное выражение) и еще раз выделить "фактический" результат (те, которые действительно соответствуют требуемому регулярному выражению) с помощью java.util.regex
в ваше приложение.
Ответ 2
Предположим, вы хотите получить номер телефона, начинающийся с + или в диапазоне от 0 до 9 от контакта.
REGEXP '^[0-9].*|[+].*'
Запрос Sqlite3
select * from Contact where name REGEXP '^[0-9].*|[+].*'
Ответ 3
Шаблоны скомпилированы регулярными выражениями. Во многих случаях удобство такие методы, как String.matches, String.replaceAll и String.split будет предпочтительнее, но если вам нужно много работать с тем же регулярное выражение, может быть более эффективным скомпилировать его один раз и повторное использование. Класс Pattern и его компаньон, Matcher, также предлагают больше функциональности, чем небольшая сумма, выставленная String.
http://developer.android.com/reference/java/util/regex/Pattern.html