Java中如何匹配多行正则表达式?解决链接跨行匹配问题
解决跨行链接的正则匹配问题
问题分析
原正则无法匹配跨行链接的核心原因:链接中存在换行和空格,但正则的字符集[\w\-.\/?%&=]未包含空白字符(换行、空格),导致匹配到换行位置时中断。
修改后的正则
\bW\s((www\.\s*|https:\/\/)?[\w-]+(\.[\w-]+)+(\/[\w\-.\/?%&=\s]*)?)
关键修改点
- 在最后一个分组的字符集中加入
\s,允许匹配链接内的换行、空格等空白字符 - 若需更精准控制,可将
\s替换为[\n ],仅匹配换行和空格 - 可选添加
s修饰符(正则末尾加/s),让.能够匹配换行符,应对更复杂的跨行场景
效果说明
修改后的正则可以完整匹配包含换行的目标链接,比如W https://stadt.muenchen.de/infos/portrait-referat- bildung-sport.html这类跨行内容。
内容的提问来源于stack exchange,提问作者Dev Dev
相关产品推荐
相关产品推荐

