有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

正则表达式匹配新行使用正则表达式java?

我喜欢使用正则表达式获取html内容。我有问题,当内容写在多行。没有找到匹配项。下面是我使用的正则表达式:

String regExpContent = "<div class=\"views-field views-field-body\">(\\s+)<span class=\"field-content\">([\\:\\,\\w\\s\\.\\„\\”\\-\\(\\)0123456789(&nbsp;)(\r?\n)]+)</span>(\\s+)</div>";
Pattern regExpMatcherContent = Pattern.compile(regExpContent,
            Pattern.DOTALL | Pattern.UNICODE_CHARACTER_CLASS);

我使用(\r?\n)来匹配新行。有人能帮我吗


共 (1) 个答案

  1. # 1 楼答案

    问题是,您正在使用正则表达式解析html。你应该使用html parser


    回答你的问题

    你的Pattern.DOTALL是多余的,因为你没有在正则表达式的任何地方使用.

    正则表达式中的\s将匹配换行符,因为它类似于[\r\n\t ]

    问题在于你的[\\:\\,\\w\\s\\.\\„\\”\\-\\(\\)0123456789(&nbsp;)(\r?\n)]+。。它应该([:,\\w\\s.„”()-]|&nbsp;)+