java正则表达式符号_JAVA⾼级编程基础⾃学笔记---正则表达
式(常⽤符号死背)...
正则
⼀、理论
所有的开发中百分百都会使⽤,不会⽤复杂的,⼀般⼏种情况下使⽤:验证、拆分、替换;
理论很简单,这⾥都懒得说了,也没有什么好说的,正则⽐较普通⽅法⽤起来快,⽐较简化。
⼆、记忆:
正则是在java1.4版本加⼊的,最早起源于liunx的,在java中是通过apache下载相关的正则开发包才可以完成,也就是(这个就是正则的jar包),其中包⾥含有两⼤类:1.pattern;2.Matcher;这两个类⼏乎不使⽤,我们只需记下以下常⽤的即可:
常⽤(记)
1.字符(如果不加⼊量词,表⽰单个字符)
如:
a:表⽰由指定的字母a组成;(同理其他字母也可以)
输出为trun,若是str=“ab”,输出就为false了,除⾮str.matches(“ab”)输出才是true;
\\:匹配⼀个“\”,也就是转移字符
这会报错,两个\\就是⼀个\
\t:匹配“\t”转义字符
\n:匹配换⾏的转义字符
2.字符范围(如果不加⼊量词,表⽰单个字符)
如:
[abc]:表⽰字母中含有a、b、c其中任⼀位字母即可,⼤写不⾏。(也可以写其他)
[^abc]:取反[abc]的(反义词),表⽰不是字母中含有a、b、c其中任⼀位字母
[a-zA-Z]:表⽰任⼀位字母(⼤写或⼩写)组成,如果[a-z],这样就不能是⼤写
[^a-zA-Z]:取反[a-zA-Z]的(反义词)
3.简化表达式
. :表⽰任意⼀位字符(注意,代码⾥不能直接写.,要加\,如: \.)
注意:以下的两个\表⽰⼀个\
\d :表⽰任意⼀位数字,等价于[0-9], 例如(差不多)
这样是true,要是str=“a”,就是false了
\D :取反(\d)的反义词,表⽰任意⼀位⾮数字,等有价于[^0-9],
\w :表⽰任意⼀位字符,由字符、数字、_组成,等价于[a-zA-Z_];(不包含 . ) \W :取反(\w)的反义词,等价于[^a-zA-Z_],如str=“$”,这个是true
\s :表⽰任⼀空格,可能是\n或\t
\S :取反(\s)的反义词,表⽰⾮空格
4.边界匹配(⼀般java很少⽤,javaScript会⽤到)
如:
^ :表⽰正则匹配的开始(java不⽤)
$ :表⽰正则匹配的结束
5.量词描述:如果没有量词,那么每⼀个出现的正则都只能匹配⼀个字符;
表达式? :表⽰此正则表达式可以出现0次或1次;
str=“”或“1”都是true,如果是=“11”就是false
表达式+ :表⽰此正则表达式可以出现1次或多次;
str=“1”或“111”都是true,如果是=“”就是false
表达式* :表⽰此正则表达式可以出现0次、1次或多次;
表达式{n} :表⽰此正则表达式可以出现n次,包含n次
表达式{n,m} :表⽰此正则表达式可以出现n到m次
6.逻辑运算
如:
X正则Y正则:表⽰X正则之后紧跟着验证Y正则;
X正则 | Y正则:表⽰两个正则选⼀个;
() :表⽰⼀组正则;
三、String对正则的⽀持(范例欣赏)
范例:进⾏替换
要求把⾮字母拆掉
输出:
正则的原理就是离散型数学,我也没有学会。
范例:进⾏拆分
按照数字拆分,有些说写[0-9]
可是结果:
所以要这么写:
//⼀般不会这么写,应该是:
结果是:
对于替换和拆分使⽤正则并不⿇烦,最⿇烦的是进⾏字符串的结构验证;
java在哪里可以免费自学范例:判断某⼀个字符串是否是消失,如果是则将其转换为Double类型
⽐如:str = “10.2”
这⾥要进⾏拆分分析,⼀般⼤家都会这么拆分的
代码如下,输出是10.2没错:
若是写str="10.",这个⽀持这种语法也没错,但是这种写法不合理(数学没有这种写法,最少后⾯跟着⼩数位),按照上⾯的代码,“10.”这样的格式不会报错,还是true,所以我们不能这么写;
⼩数点和2是什么关系,有⼩数点才会有⼩数位
所以要这么分析,加个括号
代码如下:
这种情况,运⾏结果就会是false了。
只有⼩数点跟⼩数位同时出现,⽐如str="10.1",这时候才是true
范例:匹配⽇期
如果想要将字符串变成⽇期则⼀定要使⽤SimpleDateFormat程序类,但是这个类需要满⾜特定的程序要求
输出:
范例:匹配电话号码
⽼规矩,写代码前先分析,第⼀种,电话号码⼀般是七位到⼋位,所以
代码就出来了:
输出:
第⼆种形式,前⾯010和-看成⼀体:
代码也简单出来了:
第三种形式分析如下,注意这⾥括号和\\太多别搞错:
代码如下,谁看着不晕?所以⼀下⼦直接写完不可能,要先分析,慢慢写
输出也是true
正则验证email是相当好⽤
范例:验证email地址
1.简单验证,email由字母、数字、_组成,例如:a@a.c
我们先分析:
所以代码如下:
2.完整验证:在email的⽤户名可以由字母、数字、_、-、.组成和长度最⼤数量6-30位,其中要求以字母开头,域名后缀只能是:
例如:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论