Java中正则表达式 .* 的含义讲解
作者:ThinkStu
这篇文章主要介绍了Java中正则表达式 .* 的含义,通过举例说明了正则表达式*,+,?的区别,本文给大家讲解的非常详细,需要的朋友可以参考下
Java中正则表达式 .* 的含义
两者的概念并不冲突
一、前置概念
.
:匹配1个字符,不包括0个。*
:限定前面的符号匹配 0 次到无穷次。*
号是限定符,起限定前面值的作用,不能单独使用,前面必须要有其他值,如"abc".matches("*");
会报错,原因是*
号不能单独使用。
二、.*的含义
- 首先,
.
代表匹配1个字符;*
是限定符,表示限定前面的值匹配 0 次或多次。 - 然后,当
*
号作用于前面的.
号时,就相当于*
号把.
号重复了 0 次或无穷次。 - 所以
.*
的含义为:可以匹配长度任意的字符串(包括 0 个)。
java正则表达式中.*代表什么意思
后边多一个?表示懒惰模式。
必须跟在*或者+后边用
如:<img src="test.jpg" width="60px" height="80px"/>
如果用正则匹配src中内容非懒惰模式匹配
src=".*"
匹配结果是:src="test.jpg" width="60px" height="80px"
意思是从="往后匹配,直到最后一个"匹配结束
懒惰模式正则:
src=".*?"
结果:src="test.jpg"
因为匹配到第一个"就结束了一次匹配。不会继续向后匹配。因为他懒惰嘛。
.表示除\n之外的任意字符
*表示匹配0-无穷
+表示匹配1-无穷
正则表达式*,+,?的区别,举例说明
一、*表示匹配前面的字符0个或多个
二、+表示前面的字符1个或多个
PS:表示只能是多个数字,只能是多个整数,只能是多个字母,一般用*,当然+也可以,但有时候会出错
三、?表示放在其他字符后面表示前面的字符可以有,也可以没有,或者放在*、+后面表示匹配尽可能少的字符
例如:字符串fooooo,正则来fo*和fo+会匹配整个字符串,
fo+? 匹配fo,
fo*? 匹配f
上面这个例子就可以让你理解+,*的区别
到此这篇关于Java中正则表达式 .* 的含义的文章就介绍到这了,更多相关java正则表达式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!