我根据Java中的正则表达式提出了一个问题。我有以下代码来转换相关HTML-Hyperlinks中的URL:
String groupEndOfURL = "[^ \"\\|\\t\\n\\r<]";
dummy = dummy.replaceAll("([\\w]+?://"+groupEndOfURL+"*)","<a href=\"$1\">$1</a>");
这会正确转换以下网址:
http://www.vsa-verlag.de/index.php?id=6576&tx_ttnews[tt_news]=15147
但是,在参考BibTex条目之后:
Engelhardt A,Kajetzke L(2010):Handbuch Wissensgesellschaft。 Theorien,Themen und Probleme。比勒费尔德:成绩单[http://www.transcript-verlag.de/978-3-8376-1324-7/handbuch-wissensgesellschaft]
包含超链接中的尾随]
,这不应该发生(堆栈溢出时似乎存在相同的错误,见上文)。
执行以下操作(添加\\[
和\\]
):
String groupEndOfURL = "[^ \"\\|\\[\\]\\t\\n\\r<]";
dummy = dummy.replaceAll("([\\w]+?://"+groupEndOfURL+"*)","<a href=\"$1\">$1</a>");
未正确转换第一个网址示例,因为超链接在[tt_news]=15147
停止。
那么,是否有人知道如何修改我的正则表达式以接受网址中的[
和]
,而不是当他们只是“取消”链接时?
使用([\w]+?://[^ "\|\t\n\r<]*)(?=\])?
并不完全适合,它包含下方示例中的]
。