java正则表达式能否匹配存在或不存在的字符串?

java正则表达式能否匹配存在或不存在的字符串?,java,regex,Java,Regex,我想匹配以下字符串: <a href="http://xyz">xyz</a> <a href="https://xyz">xyz</a> <a href="xyz">xyz</a> 我尝试使用正则表达式,但失败了: <a href="((http://|https://|).+)">\1</a> 实现这一目标的正确解决方案是什么? 谢谢 下面的正则表达式就是这样做的: <a\s+h

我想匹配以下字符串:

<a href="http://xyz">xyz</a>
<a href="https://xyz">xyz</a>
<a href="xyz">xyz</a>

我尝试使用正则表达式,但失败了:

<a href="((http://|https://|).+)">\1</a>

实现这一目标的正确解决方案是什么?
谢谢

下面的正则表达式就是这样做的:

<a\s+href="(?:https?://)?([^"]+)">\1</a>

下面的正则表达式执行以下操作:

<a\s+href="(?:https?://)?([^"]+)">\1</a>

我想这就是你需要的:

<a href="(https?://)?(.+)">\2</a>

我想这就是您需要的:

<a href="(https?://)?(.+)">\2</a>


感谢您的快速响应和精彩的解释!我想在这里为regexThanks给出一个+2的解释,因为它的快速响应和伟大的解释!我想在这里给出一个+2来解释正则表达式
<a href="(https?://)?(.+)">\2</a>