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

Java 需要在字符串中找到属性名称,java,regex,replaceall,Java,Regex,Replaceall,我试图用Java捕获行中的最后一个属性。请调整以下代码并帮助我找到“battr”。例如,我将属性命名为“attr”和“battr”,但它可以是任何东西 System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*([a-z]+\\s*=).*","$1")); System.out.println(“.replaceAll”(*([a-z]+\\s*=)*”,“$1”); 您可以

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

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*([a-z]+\\s*=).*","$1"));
System.out.println(“.replaceAll”(*([a-z]+\\s*=)*”,“$1”);
您可以尝试以下方法:

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

您可以对您的需求使用正向前瞻:

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*((\\s|^)([a-z])+(?==)).*", "$1").trim());
System.out.println(“.replaceAll(.*(\\s |^)([a-z])+(?==).*”,“$1”).trim();
有关详细信息:

您可以尝试以下方法:

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

您可以对您的需求使用正向前瞻:

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

有关更多信息:

非常感谢。可以请你也调整同样的工作为下面的字符串以及。attr=\“val1\”battr=\“val2\”>您尝试过该解决方案吗?你提到的字符串已经开始工作了。只需将此
.replaceAll(“.*(\\s([a-z])+\\s*=)*”,“$1”)。replace(“=”,”).trim()
添加到字符串末尾。是的,正则表达式工作正常。。但如果行不是以字符串“”Ok开头,则失败。但是
“battr=\“val2\”>“
不是有效的属性字符串。我将添加更多详细信息。。。1.最后一个属性可能以“非常感谢”开头。可以请你也调整同样的工作为下面的字符串以及。attr=\“val1\”battr=\“val2\”>您尝试过该解决方案吗?你提到的字符串已经开始工作了。只需将此
.replaceAll(“.*(\\s([a-z])+\\s*=)*”,“$1”)。replace(“=”,”).trim()
添加到字符串末尾。是的,正则表达式工作正常。。但如果行不是以字符串“”Ok开头,则失败。但是
“battr=\“val2\”>“
不是有效的属性字符串。我将添加更多详细信息。。。1.最后一个属性可以以