Java正则表达式课后整理

学习正则表达式四步走:

          什么是正则表达式?

          为什么要学习正则表达式?

          正则表达式的功能?

          在java中如何运用正则表达式?

一、概念描述

正则表达式:使用单个字符串来描述、匹配一系列符合某个句法规则的字符串(即字符串模式匹配)。

二、学习原因

    众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。
    大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
    自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。

三、功能描述

功能:被用来检索、替换符合某个模式的文本。

  (1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。

  (2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。

  (3)用来替换,比普通的替换更强大。

      在regex包中,包括了两个类,Pattern(模式类)和Matcher(匹配器类)。

      Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真正影响搜索的对象。

四、常见Java正则表达式

 表达式意义:

1、字符

\\   反斜线字符。在书写时要写为\\\\。(注意:因为Java在第一次解析时,把\\\\解析成正则表达式\\。在第二次解析时在解析为\.所以\\和带有\的都要写两次)

\0n    带有八进制值 0的字符 n (0 <= n <= 7) 

\0nn   带有八进制值 0的字符 nn (0 <= n <= 7) 

\0mnn  带有八进制值 0的字符 mnn(0 <= m <= 3、0 <= n <= 7) 

\xhh   带有十六进制值 0x的字符 hh 

\uhhhh 带有十六进制值 0x的字符 hhhh

\b     制表符('u0 0009')
\n     换行符 ('\u000A') 

\r     回车符 ('\u000D') 

\f     换页符 ('\u000C') 

\a     报警 (bell) 符 ('\u0007') 

\e     转义符 ('\u001B') 

\cx    对应于 x 的控制符


2、字符类

[abc]a、b或 c(简单类)。例如[egd]表示包含有字符e、g或d。 

[^abc] 任何字符,除了 a、b或 c(否定)。例如[^egd]表示不包含字符e、g或d。 

[a-zA-Z] a到 z或 A到 Z,两头的字母包括在内(范围) 

[a-d[m-p]] a到 d或 m到 p:[a-dm-p](并集) 

[a-z&&[def]] d、e或 f(交集) 

[a-z&&[^bc]] a到 z,除了 b和 c:[ad-z](减去) 

[a-z&&[^m-p]] a到 z,而非 m到 p:[a-lq-z](减去)

3、预定义字符类(注意反斜杠要写两次)

\d   数字:[0-9]

\D   非数字:[^0-9]

\s   空白字符:[\t\n\x0B\f\r]

\S   非空白字符:[^\s]

\w   单词字符:[a-zA-Z_0-9]

\W   非单词字符:[^\w]

4、数量词

X?    X,一次或一次也没有 

X*    X,零次或多次 

X+    X,一次或多次 

X{n}    X,恰好 n 次 

X{n,}    X,至少 n 次 

X{n,m}    X,至少 n 次,但是不超过 m 次 

Reluctant 数量词 

X??    X,一次或一次也没有 

X*?    X,零次或多次 

X+?    X,一次或多次 

X{n}?    X,恰好 n 次 

X{n,}?    X,至少 n 次 
X{n,m}?    X,至少 n 次,但是不超过 m 次 

Possessive 数量词 

X?+    X,一次或一次也没有 

X*+    X,零次或多次 

X++    X,一次或多次 

X{n}+    X,恰好 n 次 

X{n,}+    X,至少 n 次 
X{n,m}+    X,至少 n 次,但是不超过 m 次 

五、转

  1 [正则表达式]文本框输入内容控制
  2 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
  3 只能输入数字:"^[0-9]*$"  4 只能输入n位的数字:"^\d{n}$"  5 只能输入至少n位的数字:"^\d{n,}$"  6 只能输入m~n位的数字:。"^\d{m,n}$"
  7 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"  8 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"  9 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$" 10 只能输入非零的正整数:"^\+?[1-9][0-9]*$" 11 只能输入非零的负整数:"^\-[1-9][]0-9"*$。
 12 只能输入长度为3的字符:"^.{3}$" 13 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$" 14 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$" 15 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$" 16 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$" 17 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$" 18 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
 19 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
 20 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
 21 验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" 22 验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$" 23 验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX" 24 验证身份证号(15位或18位数字):"^\d{15}|\d{18}$" 25 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12" 26 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31" 27 匹配中文字符的正则表达式: [\u4e00-\u9fa5]
 28 匹配双字节字符(包括汉字在内):[^\x00-\xff]
 29 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
 30 String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
 31 匹配空行的正则表达式:\n[\s| ]*\r
 32 匹配html标签的正则表达式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
 33 匹配首尾空格的正则表达式:(^\s*)|(\s*$)

六、转载博客《Java正则表达式入门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值