正则表达式 - 堆栈跟踪 - 匹配除java包名称之外的所有网站地址

时间:2014-12-04 19:15:40

标签: java regex string

我提出了一个匹配网站的正则表达式,没有领先的http://或https://。现在,我试图在堆栈跟踪上执行此操作,我希望它只捕获实际网站,但正则表达式也捕获格式com.abc.xyz的java类名称。

通常所有这些都在(或)之前,并且我需要帮助编写负向前瞻。或者,如果我们在前面看到一个com或org,我们也可以消除这种情况。

现在,我有这个正则表达式。 (?!at) [a-z\.-]*\.(com|net|org|edu|gov|mil|us|uk|au|in|ca|eu|ke) 我不确定如何添加" at"对于负面的预测。这只是抓住了一个单词。

几个例子,

client.DefaultHttpClient:连接到{}时遇到的I / O异常(org.apache.http.conn.ConnectTimeoutException) - >连接到scn.sap.com timed out ==>给scn.sap.com

但是这个 在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)返回我不想要的java.net。

第一部分,请你帮我解决一下。

提前致谢。

1 个答案:

答案 0 :(得分:2)

由于您知道at出现在该行的开头,因此请将其排除在外。然后进行非贪婪的搜索,直到你达到匹配模式:

^(?!^at).*? ([a-z\.-]*\.(?:com|net|org|edu|gov|mil|us|uk|au|in|ca|eu|ke))

您可以使用给定的示例文本at regex101.com here来查看此内容。