【问题标题】:Having trouble getting part of an HTML line in Java with regex使用正则表达式在 Java 中获取 HTML 行的一部分时遇到问题
【发布时间】:2013-04-28 22:40:45
【问题描述】:

我正在尝试使用正则表达式获取 HTML 行中某行的一部分,但无法正常工作。

这里是 html(必要的)部分:

(five random numbers)/ ">(the word I want to extract, between 2 and 45 characters)<

所以我正在使用这个正则表达式:

"[0-9]{5}\\/\\\"\\s\\>(\\.{1,45})\\<"

我无法让它工作......

当我在我的Matcher.find() 之后尝试通过group() 得到我的话时,我总是得到“找不到匹配项”。希望我足够清楚!

【问题讨论】:

    标签: java html regex


    【解决方案1】:

    应该这样做:

    "[0-9]{5}/\"\\s>(.{1,45})<"
    

    也许更好

    "\\d{5}/\"\\s*>([^<]{1,45})<"
    

    这也将允许捕获换行符,并防止以稍后的第二个 &lt; 结束。

    【讨论】:

    • 一开始,它告诉我有一个非法的转义字符,所以我在“\s”之前添加了一个“\”并编译了,但我得到了同样的错误:“找不到匹配"
    • 如果“有 5 个随机数”你的意思是 digits,它应该可以工作。 但是在原文中是一个空格before双引号,而在模式after双引号。也许是这样?
    • 哇,我现在感觉很笨,我在原文中“写错”了。事实证明,您的正则表达式很好,只是在 's' 之前错过了一个反斜杠。我的其余代码中还有一个错误。 (与正则表达式无关,但与我如何解释结果有很大关系)。感谢您对乔普的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多