我需要一个Java Pattern来获取HTML元素的所有属性,这些属性将作为String传递。 最初,我曾经使用以下模式分割它们
private static Pattern scriptletvalue1 = Pattern.compile("value=\"([^\"]*)\"");
private static Pattern scriptletvalue2 = Pattern.compile("value='([^']*)'");
private static Pattern scriptletId1 = Pattern.compile("id=\"([^\"]*)\"");
private static Pattern scriptletId2 = Pattern.compile("id='([^\']*)'");
所有属性的等等,这可以正常工作,直到属性值中没有双引号。 但是考虑到调用函数的属性值中的scriptlet可能有双引号的参数,这就是上述模式失败的地方。
所以对于一个属性
<div value="<%=AnyText%>"></div>
第一种模式会给我<%=AnyText%>
但是当我使用相同的模式
时<div value="<%=myFunction.getValue("some Key")%>"></div>
模式将返回<%=myFunction.getValue(
而不是&lt;%= myFunction.getValue(&#34;某些键&#34;)%&gt;
如何解决?