微信公众号模板消息内容key提取代码

private static HashMap getSendDataTemp(String content) {
		HashMap data = new HashMap();
		Pattern pattern = Pattern.compile("\\{\\s*\\{.*\\.DATA\\s*\\}\\s*\\}");
		Matcher matcher = pattern.matcher(content);
		//循环,字符串中有多少个符合的,就循环多少次
		while(matcher.find()){
			//每一个符合正则的字符串
			String e = matcher.group();
			Pattern p = Pattern.compile("[^(\\{\\s*\\{\\s*)|(\\.DATA\\s*\\}\\s*\\})]+");
			Matcher m = p.matcher(e);
			m.find();
			String key = m.group();
			System.out.println(key+":h:"+key.length());
			HashMap t = new HashMap();
			t.put("value", key);
			t.put("color", "#173177");
			data.put(key, t);
			
		}
		return data;
	}

	public static void main(String[] args) {
		String content = "{ { first .DATA }}\n" + 
				"缴费项目:{  {  keyword1 .DATA  }  }\n" + 
				"应缴金额:{{   keyword2   .DATA    }     }\n" + 
				"已缴金额:{{     keyword3.DATA     }}     \n" + 
				"本次缴费:{   {keyword4.DATA     }}   \n" + 
				"欠缴金额:{{   keyword5.DATA     }}\n" + 
				"{   {   remark   .DATA}   }";
		getSendDataTemp(content);
	}

能够从

{{first.DATA}}
缴费项目:{{keyword1.DATA}}
应缴金额:{{keyword2.DATA}}
已缴金额:{{keyword3.DATA}}
本次缴费:{{keyword4.DATA}}
欠缴金额:{{keyword5.DATA}}
{{remark.DATA}}

这种类型的内容中提取出来对应的data数据模板

你可能感兴趣的:(微信公众号开发)