正则表达式 “!\\^\\.\\*\\$!([^!]+)!” 是什么意思?
发布网友
发布时间:2022-04-23 05:22
我来回答
共2个回答
热心网友
时间:2022-04-23 06:52
在java中要进行转义,所以转化成标准正则表达式后就是“ !\^\.\*\$!([^!]+)!”
正则表达式中\^
表示就是^的本身的意思,\.
\$
,同理得知;所以最后你的表达式表示!^.$!
开头后面跟任意非!的字符串重复一次到无穷次,然后以!结束。例如:1321312!^.$!
123!123123。
如果想让字符串只能是!^.$!
123!
,两边没有其他字符的,
那么在你正则的首加上^尾加上$。
热心网友
时间:2022-04-23 08:10
*?
是惰性匹配,就是匹配尽可能少的次数。
.*?的意思是匹配任意字符,尽可能少的次数。
比如:abaaaaabb
用
a.*b去匹配,会匹配到abaaaaabb
全部,应为正则默认贪婪匹配,找到第一个b之后,发现后面还有b,会一直匹配下去。
所以
可以使用贪婪匹配,a.*?b
这样的话,
只会匹配尽可能少的次数
就会匹配到
ab
还有问题hi我。