如何在这3种情况下使用带有Java的正则表达式提取字符串

如何在这3种情况下使用带有Java的正则表达式提取字符串,java,regex,Java,Regex,我在处理一个问题。我有三个字符串,我只想提取字符串 Observações da #{loginBean.centralCreditoRole ? 'central de crédito' : 'loja'} #{resource['images:header_logo_client.png']} #{propostaCartaoBean.pojo.inss.exclusaoDataprevAgendada ? 'Sim' : 'Não'} 在第1行中,输出将是3个字符串,Observaç

我在处理一个问题。我有三个字符串,我只想提取字符串

Observações da #{loginBean.centralCreditoRole ? 'central de crédito' : 'loja'}

#{resource['images:header_logo_client.png']}

#{propostaCartaoBean.pojo.inss.exclusaoDataprevAgendada ? 'Sim' : 'Não'}
在第1行中,输出将是3个字符串,
Observações da
central de crédito
loja
。第2行为空,第3行为Sim和Não

我得到的第2行是这样的
teste.replaceAll(“\\\\\\.+?\\\},”)

有可能解决这个问题吗


谢谢

您的输入不足以理解您的需求。但是,您可以尝试以下示例:

String input = "Observações da #{loginBean.centralCreditoRole ? 'central de crédito' : 'loja'}";
Pattern pattern = Pattern.compile("(.*?)#.*?\\?\\s*(?:'(.*?)(?<!\\\\)'\\s+:\\s+'(.*?)(?<!\\\\)')?");

Matcher m = pattern.matcher(input);
while (m.find()) {
    System.out.println(m.group(1));
    System.out.println(m.group(2));
    System.out.println(m.group(3));
}
String input=“Observaç245; es da#{loginBean.centralCreditoRole?'central de crédito':'loja'”;
Pattern Pattern=Pattern.compile((.*?)\\\?\\s*(?:')(.*?)?