Я разбором каким-нибудь текстом в Java с Regexпростого атрибут разбора с закодированными двойными кавычками
У меня есть строки, которые выглядят следующим образом: myAttribute = «некоторый текст», и я разбор их как этот
Pattern attributePattern = Pattern.compile("[a-z0-9]*=\"[^\"]*\"");
Однако я понимаю, что люди могут использовать двойные кавычки в своих значениях атрибутов.
например. myAttribute = «текст с двойной цитатой \» здесь»
Как настроить мое регулярное выражение для обработки этого
Вот мой код, который анализирует атрибуты
private HashMap<String, String> findAttributes(String macroAttributes) {
Matcher matcher = attributePattern.matcher(macroAttributes);
HashMap<String, String> map = new HashMap<String, String>();
while (matcher.find()) {
String attribute = macroAttributes.substring(matcher.start(), matcher.end());
int equalsIndex = attribute.indexOf("=");
String attrName = attribute.substring(0, equalsIndex);
String attrValue = attribute.substring(equalsIndex+2, attribute.length()-1);
map.put(attrName, attrValue);
}
return map;
}
findAttributes("my=\"some text with a double quote \\\" here\"");
Если возвращать карту размер 1 Значение должно быть какой-то текст с двойной цитатой \»здесь
Ваше решение работал отлично! Я вижу, что теперь мне нужно сбежать от нормальных слэшей, но это нормально. Многие tx –