java - 正则表达式用于修复带有空格的断开链接

标签 java regex href

我正在使用这个正则表达式

private static final String HREF_PATTERN = 
    "\\s*(?i)href\\s*=\\s*(\"([^\"]*\")|'[^']*'|([^'\">\\s]+))";

获取链接

 <a href=www.example.com/1234 5678>

URL 格式错误。它包含一个空格。问题是我想获取包括“5678”在内的整个链接,但我只得到“www.example.com/1234”。

我不太擅长正则表达式。有人可以提供一个有效的正则表达式,以便我可以获得整个网址“www.example.com/1234 5678”。

谢谢

最佳答案

The external program creates an html Email with several <a href=www.example.com/1234 5678> tags.

假设您无法在源代码级别修复它,您可以尝试使用正则表达式修复它。

如果href attribute 是唯一的属性,您不必关心 = 之后的空格。 。删除\\s根据你的模式,它会起作用。

private static final String HREF_PATTERN = 
   "(?i)\\s*href\\s*=\\s*(\"([^\"]*\")|'[^']*'|([^'\">]+))";
                                                     ^

如果您有带有值的属性,则必须使用前瞻:

private static final String HREF_PATTERN = 
    (?i)\\s*href\\s*=\\s*(\"([^\"]*\")|'[^']*'|([^'\">]+(?=>|\\s+\\w+=)))

请参阅regex demo

但是,这不适用于 nofollow 等属性。 .

关于java - 正则表达式用于修复带有空格的断开链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33259650/

相关文章:

ruby - 希望正则表达式在第一次出现 "."和 ";"时停止

javascript - 正则表达式允许中文或字母字符

Python 正则表达式示例

javascript - 包括 href 和 onclick 到 HTML <a> 标签

java - 绘制 Rectangle2D 数组时出现空指针异常

java - 在 NetBeans 7.1 中通过 clean-build 将 java jar lib 分发到多个目标

java - 将返回值传递给匿名类

Java - 导入物理字体

javascript - 复选框输入 - onclick 事件 - 更改 href 和复选框图像/值

javascript - 有没有更好的方法来防止单击 href 时整个页面滚动?