首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用indexOf打印出indexOf范围?

如何使用indexOf打印出indexOf范围?
EN

Stack Overflow用户
提问于 2013-05-21 03:14:25
回答 2查看 170关注 0票数 0

1)在我的java程序中,它连接到一个网页并抓取html页面的源代码。

2)然后,它继续将整个页面源代码转换为字符串(htmlString)。

3)我想获取html源代码中的一个值并将其放入一个字符串(myString)中。

4)我正在尝试使用indexOf,并且具有以下正则表达式,它能够在我试图获取的值的开始之前找到位置:

代码语言:javascript
复制
System.out.println(htmlString.indexOf("<input name=\"k\" value=\"", 1));

这将返回4861

5)我想打印出这些值,并将它们存储到indexOf位置范围为4862 - 4893的字符串中。我似乎想不出该怎么做。

此外,每次刷新页面时,此indexOf范围4862-4893的值都会更改。否则,我会直接搜索那个特定值。

我正在尝试做的基本示例:

HTML源:

代码语言:javascript
复制
<input type='hidden' name='k' value='nnhMTGbb2z5eryuksFGns9tt0EEjqBX8'>

使用我搜索的正则表达式和indexOf:

代码语言:javascript
复制
<input type='hidden' name='k' value=

发现它在位置4861,现在我需要获取从4862到4893的所有东西,这个值: nnhMTGbb2z5eryuksFGns9tt0EEjqBX8,并将其放入一个字符串中。

我一定是错过了一些我觉得很简单的东西。我该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-21 03:17:50

众所周知,正则表达式不适合解析HTML。如果我是你,我会使用一个用来解析超文本标记的库,比如:What are the pros and cons of the leading Java HTML parsers?,考虑一下,type可以改为在标记的末尾,而不是在开始。HTML仍然有效,但是regex/indexof现在没有用了。这些可能是你不想考虑的问题。

但是如果你坚持,你可以使用StringUtils.lastIndexOf

票数 2
EN

Stack Overflow用户

发布于 2013-05-21 03:18:06

考虑使用JSoup解析html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16656696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档