我解析一些Java中的文本與正則表達式簡單的屬性與編碼的雙引號
我有一個字符串看起來像這樣解析: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 – 2013-03-04 14:30:43