Pessoal,
Estou tentando aplicar a seguinte expressão regular ao texto abaixo:
String er1 = "(^|.*\\s)([Dd]evelopers?|[Ss]tudents?|[Pp]articipants?)\\s.*?(([A-Z][A-Za-z]*\\s?)*\\s[Tt]ools?)[ ,]\\s?which\\s(reported|supported)\\s.*";
String sentenca = "For example, in controlled experiments where participants are asked to estimate the value of " +
"the product of a set of numbers, the estimates are highly anchored to the ordering 874 IEEE " +
"TRANSACTIONS ON SOFTWARE ENGINEERING, VOL.";
para identificar se esta sentença tem o nome de uma ferramenta ou não. A princípio, esta ER não deve encontrar a expressão que eu desejo, isto é
Pattern padrao = Pattern.compile(er1);
Matcher resultado = padrao.matcher(sentenca);
if (resultado.matches()) = FALSO.
Blz, o problema é que o programa se perde, ou entra em loop, e não retorna nada. Pelos vários testes que fiz, acho que o problema está na parte da ER onde há o aninhamento (([A-Z][A-Za-z]*\\s?)*\\s[Tt]ools?), mas não tenho certeza.
Não sei mais como fazer para resolver o problema, por isto estou contando com a colaboração e competência de vcs.
Desde já, muito obrigado.
Marcus