正则表达式 “!\\^\\.\\*\\$!([^!]+)!” 是什么意思?

如题所述

在java中要进行转义,所以转化成标准正则表达式后就是“ !\^\.\*\$!([^!]+)!”
正则表达式中\^
表示就是^的本身的意思,\.
\$
,同理得知;所以最后你的表达式表示!^.$!
开头后面跟任意非!的字符串重复一次到无穷次,然后以!结束。例如:1321312!^.$!
123!123123。
如果想让字符串只能是!^.$!
123!
,两边没有其他字符的,
那么在你正则的首加上^尾加上$。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-03
*?
是惰性匹配,就是匹配尽可能少的次数。
.*?的意思是匹配任意字符,尽可能少的次数。
比如:abaaaaabb

a.*b去匹配,会匹配到abaaaaabb
全部,应为正则默认贪婪匹配,找到第一个b之后,发现后面还有b,会一直匹配下去。
所以
可以使用贪婪匹配,a.*?b
这样的话,
只会匹配尽可能少的次数
就会匹配到
ab
还有问题hi我。
相似回答