Мне нужно перечислить строку, находящую все [], и получить текст между ними и заменить его всем чем-то другим.Regex Несколько разных значений в одной строке
Например:
HTTP: \ www.domain.com \ ид = [USER_ID] & звукозаписывающей = [CALL_KEY] & someother = [OTHER_STUFF]
Как она стоит сейчас я должен жесткий код каждый отдельный ключ и замените его значением.
private String injectValues(String url) {
String injected = url.replace("[CALL_KEY]", "123");
injected = injected.replace("[USER_ID]", "some user ide");
injected = injected.replace("[OTHER_STUFF]", "somethingElse");
return injected;
}
У меня есть куча различных значений, которые могут быть подключены, а вместо жесткого кодирования [CALL-KEY] и т.д., я хотел бы динамически читать то, что там и ввести значение.
Я использовал RegEx enumerateMatchesInString
в Objective-C, есть ли Android/Java-эквивалент?
Я возился с Pattern
, но я не знаю об этом, чтобы заставить его работать на то, что я хочу.
private void injectValues(String url) {
Pattern pattern = Pattern.compile("[(.+?)]");
Matcher matcher = pattern.matcher(url);
....///EEEEEHH how do I get the matches?
String key = ;//THE VALUE INSIDE THE SQUARE BRACKETS
String aValue = someMethodToGetTheValueForKey(key);
}
private String someMethodToGetTheValueForKey(String key){
return "Something";
}
Есть уже множество вопросов о разборке querystring –
Ой, отлично, не могли бы вы дать некоторые URL-адреса связанным вопросам? –
Возможная дубликация [Разбор строки URI в коллекции значений] (http://stackoverflow.com/questions/13592236/parse-a-uri-string-into-name-value-collection) –