需要在字符串中找到属性名称

时间:2017-09-07 09:46:17

标签: java regex replaceall

我正在尝试捕获Java中该行的最后一个属性。请调整下面的代码并帮我找到“battr”。例如,我命名的属性如“attr”和“battr”,但它可以是任何东西。

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*([a-z]+\\s*=).*","$1"));

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*(\\s([a-z])+\\s*=).*", "$1")
            .replace("=", "").trim());

修改

您可以根据需要使用正向前瞻:

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*((\\s|^)([a-z])+(?==)).*", "$1").trim());

了解更多信息:Lookahead and Lookbehind Zero-Width Assertions