gpt4 book ai didi

java - 如何使用正则表达式从 URL 获取域?

转载 作者:行者123 更新时间:2023-11-30 08:44:55 25 4
gpt4 key购买 nike

我需要在网页上显示一个 word 文档。我正在使用名为 Docx4j 的库将 .doc 转换为 html。这工作正常。但是,我得到了以下格式的超链接。

To search on google go to this link [#?] HYPERLINK \"http://www.google.com/\" [#?][#?] google[#?] and type the text.

我可以把它转换成

To search on google go to this link  (http://www.google.com) google and type the text.

使用下面的代码

String myText = "To search on google go to this link [#?] HYPERLINK \"http://www.google.com/\" [#?][#?] google[#?] and type the text.";
System.out.println(myText);
String firstReplace = myText.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("#\\?", "");
System.out.println(firstReplace);
String secondReplace = firstReplace.replaceAll("HYPER\\S+\\s+\"", "(");
System.out.println(secondReplace);
String finalReplace = secondReplace.replaceAll("/*\".", ")");
System.out.println("\n" + finalReplace);

谁能给我一个正则表达式来将上面的字符串转换成

To search on google go to this link google (http://www.google.com) and type the text.

--编辑--

有些链接显示为

[#?] HYPERLINK \"http://www.google.com/\" [#?][#?] google page[#?]

我应该把它们改成

google page (http://www.google.com)

我该怎么做?

最佳答案

您可以使用组引用来匹配括号后面的单词 google

您可以替换以下正则表达式的结果:

'(\([^)]*\))\s?(\w+)'

以下内容:

'$2 $1'

为此,您可以使用 str.replaceAll() 函数。

阐述:

第一个捕获组(\([^)]*\))会匹配括号之间的部分,[^)]*是一个取反字符类匹配除右括号外的任意字符组合。

而第二个 (\w+) 将匹配该部分之后的单词, \w+ 将匹配单词字符的任意组合。

关于java - 如何使用正则表达式从 URL 获取域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33561961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com