Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 搜索标记,然后将标记之间的文本保存为变量_Java - Fatal编程技术网

Java 搜索标记,然后将标记之间的文本保存为变量

Java 搜索标记,然后将标记之间的文本保存为变量,java,Java,我对Java非常陌生,但是我如何在文件中搜索标记,然后标记之间的所有内容,比如文本字符串,都将分配给一个变量 例如,我想要标题,但是我想把字符串“thetitle”保存到一个名为title1的变量中,或者别的什么 我该怎么做呢?谢谢。如果使用正则表达式,则只需使用捕获组: Pattern p=Pattern.compile([^您不应该使用正则表达式来解析HTML: 试试jsoup String html=“标题”; Document doc=Jsoup.parse(html); 元素标题=文档

我对Java非常陌生,但是我如何在文件中搜索标记,然后标记之间的所有内容,比如文本字符串,都将分配给一个变量

例如,我想要
标题
,但是我想把字符串“thetitle”保存到一个名为title1的变量中,或者别的什么

我该怎么做呢?谢谢。

如果使用正则表达式,则只需使用捕获组:


Pattern p=Pattern.compile([^您不应该使用正则表达式来解析HTML:

试试jsoup

String html=“标题”;
Document doc=Jsoup.parse(html);
元素标题=文档选择(“标题”).first();
字符串结果=title.text();

我为你编辑了这个问题,这就是你的意思吗?请注意,他不是在解析整个文档;他是在获取特定元素的文本。如果他(比如)根据网页标题为网页编制索引,使用正则表达式将更有效率。如果他在编写网页浏览器,那么是的,他需要一个解析器。但是人们太快了,无法输入oduce在不需要依赖项的情况下使用类似的依赖项。@Ernest,我部分同意:在特殊情况下,使用正则表达式将更加有效。例如,如果OP希望在特定时间处理来自一个特定源的html文件。但是如果OP将处理来自所有不同源的html文件或经过更长时间,则使用正则表达式解决方案n迟早会失败-有这么多不倒翁。这不仅仅是我的意见,这是我的经验,我做了很多截屏。你想要快速和肮脏的东西吗?去regexp。想要健壮和持久的东西吗?去HTML解析器。
Pattern p = Pattern.compile("<title>([^<]*)</title>", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(theText);
if (m.find()) {
    String thisIsTheTextYouWant = m.group(1);
    ....
String html = "<title>THE TITLE</title>";
Document doc = Jsoup.parse(html);
Element title = doc.select("title").first();
String result = title.text();