java正则<(.)+?>表示什么意思

有没有人在啊,想请分析下,java正则<(.)+?>表示什么意思
最新回答
甜心

2024-11-04 00:35:29

表示<>之间有任意一个(含)字符以上,括号表示捕获组,匹配后可以单独提取出括号内的内容,?代表最短匹配,比如<asdf>>>这样的输入,有?会匹配成<asdf>,没有?会匹配整个<asdf>>>。

str.ReplactAll("<(.)+?>","")就是把所有<>间有一个字符以上的文字都替换为空。比如
asdf<1234>jkl<>会变成asdfjkl<>
追问
另外要是str_line.replaceAll("&(.)+?;"," ")这个呢?是不是将&开头的包含任意字符的右面的最短匹配并以;结束的都替换成为空?
追答
是这样的。不过你打的好象是" ",里边有个空格,如果是这样就是替换为空格。
七米海岸

2024-11-04 00:48:27

应该是尖括号内至少一个(.)开头,后面随便是什么的,这样的字符串。
情根深种

2024-11-04 00:34:45

表示所有<>括起来的内容 .的意思是任意字符 .+?任意后面不是>的字符
你这个表达式会把每个<>内的第一个字符放进捕获组1
追问
我要是str.ReplactAll("","")呢?  str是把什么替换掉了?
另外要是str_line.replaceAll("&(.)+?;"," ")这个呢?
深拥意中人

2024-11-04 01:03:28

+? 表示 重复1次或更多次,但尽可能少重复
这个表达式的意思是 <任意字符> 短匹配 比如 有 <aaa>bbb>ccc> 那么匹配结果是 <aaa>