Java:这个正则表达式出了什么问题?

Cra*_*lus 0 java regex string

我试图让文本在标签内,即<text>.我在做:

Pattern pattern = Pattern.compile("(?<=\\<).*(?=\\>)");
Run Code Online (Sandbox Code Playgroud)

我认为这说:任何字符都是之前的0次或更多次<(正面观察),然后是>(正向前瞻).

Matcher m = pattern.matcher(data);  
if (!m.matches()) continue; //Called in a for loop  
Run Code Online (Sandbox Code Playgroud)

但是例如输入没有匹配<text> some other stuff here.

我在这做错了什么?

wax*_*ing 5

使用时matches(),整个输入字符串必须与表达式匹配.如果要查找子字符串,可以find()改用.


Tho*_*mas 5

不要使用m.matches()但是m.find().

JavaDoc中matches():

尝试将整个区域与模式匹配.