Regex解析包含URL转义符的字符串



我有一个试图从文件中读取的示例Url我必须解析之前包含转义符的URL:例如https://www.sample.co.in:8080?或http://www.sample.co.in

遗憾的是,我写的正则表达式

Regex = w*\:.*  

有助于解析第二个示例。无论我在哪里得到一个:都应该有一个前缀"\"。如果我有这样一个字符串http:\www.google.com,它应该不会通过。我正在尝试从日志文件中提取文本。

如果你只想验证url,那么已经有很多好的答案了,其中一个是

你可以尝试这样的url验证

String lRegex = "^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";

另一方面,如果你想从url中获取属性,可以尝试这样的

URL aURL = new URL("https:/www.sample.co.in:8080");
System.out.println("protocol = " + aURL.getProtocol());
System.out.println("authority = " + aURL.getAuthority());
System.out.println("host = " + aURL.getHost());
System.out.println("port = " + aURL.getPort());

在查看了各种引用之后,我设法构建了我想要的正则表达式。

String regex = "(query=.*?(?<!\\):)+.*?";
Pattern PATTERN = Pattern.compile(regex);
String notvalue = "query=https\://www.localhost.com\:80";
String passvalue = "query=https://www.localhost.com\:80";

谢谢大家。:)当我们给出一个不应该解析的错误URL时,返回true。

最新更新