加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为多个模式解析InputStream

发布时间:2020-12-14 19:14:14 所属栏目:Java 来源:网络整理
导读:我正在为某些模式解析InputStream以从中提取值,例如我会有类似的东西 我不想使用完整的html解析器,因为我对文档结构不感兴趣,而只是在一些定义明确的信息中. (只有他们的订单很重要) 目前我使用的是一种非常简单的方法,每个模式都有一个Object,其中包含一个

我正在为某些模式解析InputStream以从中提取值,例如我会有类似的东西


我不想使用完整的html解析器,因为我对文档结构不感兴趣,而只是在一些定义明确的信息中. (只有他们的订单很重要)
目前我使用的是一种非常简单的方法,每个模式都有一个Object,其中包含一个打开和关闭’tag’的char [](在示例中,开头是< span class =“filename”>< a href =“和关闭”以获取网址)和位置标记.对于InputStream读取的每个字符,我迭代所有模式并调用匹配(char)函数,一旦开始模式匹配就返回true,从那时起我在StringBuilder中收集以下字符,直到现在活动模式匹配()再次.然后我调用一个具有Pattern和String读取ID的函数来进一步处理它.
虽然这在大多数情况下工作正常,但我想在模式中包含正则表达式,所以我也可以匹配类似的东西


在这一点上,我确信我会重新发明轮子,因为这肯定是以前完成的,而且我真的不想编写自己的正则表达式解析器.但是,我找不到任何可以做我想要的东西.
不幸的是,Scanner类只匹配一个模式,而不是模式列表,我可以使用哪些替代方案?它不应该很重,适用于Android.

最佳答案
你的意思是你要匹配任何< span>具有给定类属性的元素,与其可能具有的其他属性无关?这很容易:

Scanner sc = new Scanner(new File("test.txt"),"UTF-8");
Pattern p = Pattern.compile(
    "

文件“test.txt”包含问题的文本,输出为:

http://example.com/foo
and closing
http://example.com/foo

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读