Java 用正则表达式提取数据
我试图摘录以下句子:Java 用正则表达式提取数据,java,regex,Java,Regex,我试图摘录以下句子: str="<a href=\"https://blabla.com/truck\">truck</a> A wheeled, powered motor vehicle used for transportation." 找不到使用正则表达式正常提取句子的方法,每次都会遗漏一些内容 编辑:所需结果的结构是“”符号前的单词,以及紧跟其后的句子的其余部分(单词是随机的,句子也是随机的)。在这种情况下,只需删除”,“”); 但通常避免使用正则表达式解
str="<a href=\"https://blabla.com/truck\">truck</a> A wheeled, powered motor vehicle used for transportation."
找不到使用正则表达式正常提取句子的方法,每次都会遗漏一些内容
编辑:所需结果的结构是“
”符号前的单词,以及紧跟其后的句子的其余部分(单词是随机的,句子也是随机的)。在这种情况下,只需删除之间的文本即可:
String str="<a href=\"https://blabla.com/truck\">truck</a> A wheeled, powered motor vehicle used for transportation.";
System.out.println(str.replaceAll("<[^>]*>", ""));
String str=“一种用于运输的轮式机动车辆。”;
System.out.println(str.replaceAll(“]*>”,“”);
但通常避免使用正则表达式解析HTML。它有许多潜在的问题。您可以在此处阅读有关它们的信息:
String str="<a href=\"https://blabla.com/truck\">truck</a> A wheeled, powered motor vehicle used for transportation.";
Document doc = Jsoup.parse(str);
String text = doc.text();//get text which this HTML structure will generate in browser
System.out.println(text);
String str=“一种用于运输的轮式机动车辆。”;
Document doc=Jsoup.parse(str);
字符串text=doc.text()//获取此HTML结构将在浏览器中生成的文本
System.out.println(文本);
结果:卡车用于运输的轮式机动车辆。
我不能在这个项目中使用jsoup库,有没有办法将它与正则表达式一起使用?通常,使用正则表达式解析复杂的XML/HTML是非常糟糕的选择,所以答案取决于文本的复杂性。您可能需要更新您的问题,其中可能包含有关要解析的结构的所有详细信息。您可以简单地尝试删除之间存在的所有内容,但如果您可能有一些
或部分,这可能会失败。@gb051我更新了我的答案,为这种情况提供了简单的解决方案,但我不能保证这将适用于您的其他情况。在正则表达式中,将“?”放在“*”之后,使正则表达式不那么贪婪。@gonbe为什么?我使用[^>]*
正是为了避免*?
及其回溯。您能展示一下您迄今为止的尝试吗?你能提取truck
和后面的内容并将它们连接在一起吗?
String str="<a href=\"https://blabla.com/truck\">truck</a> A wheeled, powered motor vehicle used for transportation.";
Document doc = Jsoup.parse(str);
String text = doc.text();//get text which this HTML structure will generate in browser
System.out.println(text);