Android / Java Pattern Matching - PullRequest
       5

Android / Java Pattern Matching

0 голосов
/ 15 ноября 2011

По какой-то причине я не могу получить соответствие шаблону для "preference_network_", за которым следует что-либо еще в виде одной строки.Я хочу иметь возможность проверить, содержит ли ключ предпочтения "preference_network_", используя метод key.matches ().Как я могу заставить это работать, я попробовал несколько вещей без успеха.Спасибо заранее.

ОБНОВЛЕНИЕ

Извините, что не разъяснил.Все эти решения я могу выполнить и знать о них.Я пытаюсь использовать функцию «key.matches (String normalExpression)», где ключ - это параметр метода onSharedPreferenceChangeListener.Это то, что у меня возникают проблемы с работой.

И я знаю, что мне не нужно это использовать, я могу использовать старты с просто отлично.Мне было просто интересно.

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

решений без использования шаблонов:

str.startsWith("preference_network_");
str.contains("preference_network_");

С шаблонами

// the same as contains.
Pattern p = Pattern.compile("preference_network_");
p.matcher(str).find(); 

// the same as startsWith.
Pattern p = Pattern.compile("^preference_network_");
p.matcher(str).find(); 

Если вы хотите использовать matches(), вам нужно написать полный шаблон:

Pattern p = Pattern.compile("^preference_network_.*");
p.matcher(str).matches(); 

Поскольку совпадения выполняются так, как если бы ваш шаблон начинался с ^ и заканчивался $, то есть

Pattern.compile("^something$").matcher(str).find() совпадает с Pattern.compile("something").matcher(str).matches()

1 голос
/ 15 ноября 2011

Без регулярного выражения:

boolean matches = myString.startsWith("preference_network_");
...