正则表达式之匹配域名和ip 以及java中正则终于要注意的问题

正则表达式一些常用的表达式:

Email地址:

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

域名:

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?

InternetURL:

[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

手机号码:

^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

电话号码(“XXX-XXXXXXX”、“XXXX-XXXXXXXX”、“XXX-XXXXXXX”、“XXX-XXXXXXXX”、"XXXXXXX"和"XXXXXXXX):

^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

国内电话号码(0511-4405222、021-87888822):

\d{3}-\d{8}|\d{4}-\d{7}

电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号):

((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)

身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:

(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)

帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):

^[a-zA-Z][a-zA-Z0-9_]{4,15}$

密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):

^[a-zA-Z]\w{5,17}$

强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$

强密码(必须包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间):

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

日期格式:

^\d{4}-\d{1,2}-\d{1,2}

一年的12个月(01~09和1~12):

^(0?[1-9]|1[0-2])$

一个月的31天(01~09和1~31):

^((0?[1-9])|((1|2)[0-9])|30|31)$

Java中反斜杠正则表达式语法

在其他语言中,\ 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。

在 Java 中,\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。

所以,在其他的语言中(如 Perl),一个反斜杠 \ 就足以具有转义的作用,而在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。也可以简单的理解在 Java 的正则表达式中,两个 \ 代表其他语言中的一个 \,这也就是为什么表示一位数字的正则表达式是 \d,而表示一个普通的反斜杠是 \。

System.out.print("\\");    // 输出为 \
System.out.print("\\\\");  // 输出为 \\
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java正则表达式是一种用于匹配、查找和替换文本的强大工具。它可以用于验证输入是否符合特定的格式、从文本提取信息、以及将文本的某些内容替换成其他内容。 下面是一些示例代码,说明如何使用Java正则表达式进行匹配、替换和查找操作: 1. 匹配操作: ```java String input = "This is a test string."; String pattern = "test"; // 创建 Pattern 对象 Pattern p = Pattern.compile(pattern); // 执行匹配操作 Matcher m = p.matcher(input); if (m.find()) { System.out.println("Found match at index " + m.start() + " to " + m.end()); } else { System.out.println("No match found."); } ``` 这段代码首先定义了一个输入字符串和一个正则表达式模式,然后创建了一个 Pattern 对象,并使用该对象对输入字符串进行匹配操作。如果找到了匹配项,则输出其开始和结束位置;否则,输出未找到匹配项的提示信息。 2. 替换操作: ```java String input = "This is a test string."; String pattern = "test"; String replacement = "example"; // 执行替换操作 String output = input.replaceAll(pattern, replacement); System.out.println("Output string: " + output); ``` 这段代码使用了 String 类的 replaceAll() 方法,将输入字符串所有匹配正则表达式模式的部分替换成指定的字符串。替换后的字符串将被输出到控制台。 3. 查找操作: ```java String input = "This is a test string."; String pattern = "\\w+"; // 创建 Pattern 对象 Pattern p = Pattern.compile(pattern); // 执行查找操作 Matcher m = p.matcher(input); while (m.find()) { System.out.println("Found match: " + m.group()); } ``` 这段代码使用了一个正则表达式模式,该模式匹配一个或多个字母、数字或下划线字符。然后,它创建了一个 Pattern 对象,并使用该对象对输入字符串进行查找操作。如果找到了匹配项,则输出其内容;否则,继续查找下一个匹配项。这里使用了 Matcher 类的 find() 方法来查找所有匹配项。 以上是Java正则表达式的一些基本用法,可以根据具体需求进行调整和扩展。通过学习Java正则表达式,我们可以更轻松地处理文本数据,并快速准确地完成各种文本处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据学习僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值