Java 正则表达式从html标记获取动态值
我有一个字符串格式的html标记。我需要从中获取一个动态值 输入字符串: 我可以在这里用适当的正则表达式来帮助你Java 正则表达式从html标记获取动态值,java,regex,Java,Regex,我有一个字符串格式的html标记。我需要从中获取一个动态值 输入字符串: 我可以在这里用适当的正则表达式来帮助你 String regex = "value=\\\"(.*?)\\\""; 您可以尝试转义反斜杠符号\和引号符号。尝试以下操作: import java.util.regex.*; public class RegexTest { public static void main(String args[]){ final String str = "&
String regex = "value=\\\"(.*?)\\\"";
您可以尝试转义反斜杠符号\和引号符号。尝试以下操作:
import java.util.regex.*;
public class RegexTest {
public static void main(String args[]){
final String str = "<input type=\"hidden\" name=\"OFBIZ_FRAMEWORK_REQUEST_SYNCH_TOKEN\" value=\"1590137573579\">\n";
String regex = "value=\\\"(.*?)\\\"";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
}
}
您的正则表达式需要38个步骤来匹配值 如果该值始终为数字,则可以使用:
String regex = "value=\"(\d*)\"";
它需要12个步骤
如果值可以包含除双引号以外的任何字符,请使用:
String regex = "value=\"([^\"]*)\"";
它还需要12个步骤才能使事情变得简单。如果你试图解析一个html文件,那么请看下面的例子,我觉得答案完全是错误的。OP已经说过这对他有用了。如果需要更改任何内容,则应该在值周围设置单词边界,以确保它不会尝试匹配以值结尾的属性。否则,这个正则表达式就是一个非常简单的搜索,所建议的任何更改都不重要。
String regex = "value=\"(\d*)\"";
String regex = "value=\"([^\"]*)\"";