【Java】利用正则表达式判断是否为网址

本文与《【JavaScript】利用正则表达式检查输入框输入的是否为网址》(点击打开链接)为姊妹篇,在上文中已经提到了,正则表达式在各个程序是通用的,这里不再讲解正则表达式的具体用法。重点讲述正则表达式在Java中怎么使用,还是在判断是否为网址。

有以下的四个测试用例:

运行结果如上图所示。

代码如下:

package urlReg;

import java.util.regex.*;

public class urlRegTest {
	public static void main(String[] args) {
		String url1 = "http://www.xx.com";
		String url2 = "w.xx.com";
		String url3 = "http://w.xx.com";
		String url4 = "ssss";
		Pattern pattern = Pattern
				.compile("^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\/])+$");
		System.out.println(pattern.matcher(url1).matches());
		System.out.println(pattern.matcher(url2).matches());
		System.out.println(pattern.matcher(url3).matches());
		System.out.println(pattern.matcher(url4).matches());
	}
}

在你用字符串String设置完一条正则表达式之后,通过Pattern.compile转化为正则表达式。

之后再用pattern.matcher(xx).matches()的方法,得到是否匹配的布尔值。

由于正则表达式是通过Java中的String类型设置,因此,在其中张的/不用在前面补上\,反倒是正则表达式的\需要再补上一个\,也就是\\才能表示一个\,这是与JavaScript不同的地方。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 15:29:58

【Java】利用正则表达式判断是否为网址的相关文章

[奇淫怪巧] 利用正则表达式判断素数

最近在学习正则表达式,偶然间看到利用正则表达式判断一个数是不是素数的帖子.当时就震惊了,觉得好神奇.那个判断素数的函数是这样子的: public static bool IsPrime(int i) { return !Regex.IsMatch(new String('*', i), "^.?$|^(..+?)\\1+$"); } 有没有觉得很神奇?我当时就觉得相当的有想象力的一种实现.那让我们看一下这个正则表达式是如何做判断素数的. 第一步,创建了一个长度为i,并以'*'填充的字符

利用正则表达式判断Java中的秒钟、分钟、小时、日、月是否符合规则

// 定义校验规则 Pattern patRule = Pattern.compile("判断规则"); // 校验结果 patRule.matcher("判断的对象").matches(); 1.秒钟.分钟.小时判断规则 String smh = "([0-9]|[1-5][0-9]|59)"; 2.日校验规则 String dayRule= "([1-9]|[1-2][2-9]|[1-3][0-1])"; 3.月校验规则

利用正则表达式判断四则运算表达式是否合法

写了一个判断四则运算合法性较验的式子. public static bool CheckExpressionValid(string input) { string pattern = @"^(((?<o>\()[-+]?([0-9]+[-+*/])*)+[0-9]+((?<-o>\))([-+*/][0-9]+)*)+($|[-+*/]))*(?(o)(?!))$"; //去掉空格,且添加括号便于进行匹配 return Regex.IsMatch("

Java中常用的正则表达式判断,如IP地址、电话号码、邮箱等

java中我们会常用一些判断如IP.电子邮箱.电话号码的是不是符合,那么我们怎么来判断呢,答案就是利用正则表达式来判断了,因为本人对正则表达式没有太深的研究,所有感兴趣的朋友可以自行百度.我这就给基本的判断,废话不多说,下面就是上代码. IP地址的判断方法 public static boolean orIp(String ip) { if (ip == null || "".equals(ip)) return false; String regex = "^(1\\d{2

Java编程:正则表达式判断邮箱及电话号码是否有效

/** * 正则判断邮箱及电话号码是否有效 * @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入你的邮箱:");  String email = sc.next();   System.out.println("请输入你的电话号码:");      String phone = sc.

【JavaScript】利用正则表达式检查输入框输入的是否为网址

这个功能在网页中也是很常见的,友情链接部分.表单填写个人主页的时候,使用JavaScript取验证是否为网址. 这个检验不好写,最好还是使用正则表达式去认证. 规定,输入的东西只能是http://与https://开头,而且必须是网址. 有人说,为何像www.1.com这样的网页不行呢? 这是以免你拿用户输入的东西构造超级链接的时候,a标签中的href属性如果遇不到http://或者https://的东西,那么就会认为是根目录,会在你的网站的网址后面接着写入这个地址再跳转,这个大家应该知道.比如

java利用反射机制判断对象的属性是否为空

java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String>(); validateMap.put("serial", "编号");validateMap.put("major", "专业"); public static <T> String validateFiledIs

Java开发中利用正则表达式屏蔽关键字符

在开发中我们时常将一段字符串的头尾显示中间用*代替  比如(135******567)如果用字符串替换的话相当麻烦,但是用正则表达式的话就很简单 例如将13583932812 改成 135 ****** 812 就可以利用正则表达式组的概念轻松取得 替换结果为

java利用Scanner获取键盘输入

在运行一个java程序的时候,可能我们需要在运行的时候传递一些参数进去...咋办呢... java提供了一个Scanner类,利用这个类,我们可以很方便的获取键盘输入的参数... Scanner是一个基于正则表达式的文本扫描器~~可以从文件,输入流,字符串中解析出基本类型和字符串类型的值.Scanner类提供了多个构造器,不同的构造器可以接受文件,输入流,字符串作为数据源,用于从文件,输入流字符串中解析数据.(摘自<疯狂java讲义>李刚) 代码示例: import java.util.Sca