Как запустить запрос с regexp в Android

Я хочу выполнить запрос в SQLite с помощью 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