Olá,
Recebo um texto grande na aplicação e preciso localizar uma string dentro do texto, porém estou com problemas devido à acentuação, para resolver isso comecei a usar uma expressão regular, ficaria+/- como abaixo:
String testes = "(Servi)[\\p{L}](o Temporariamente Indispon)[\\p{L}](vel)";
String teste1 = "Serviço Temporariamente Indisponível";
if(teste1.matches(testes))
System.out.println("OK");
else
System.out.println("NOT OK");
Do jeito que está aí funciona numa boa, mas se a string que quero verificar tiver algo antes ou depois ele não funciona, por exemplo:
String testes = "(Servi)[\\p{L}](o Temporariamente Indispon)[\\p{L}](vel)";
String teste1 = "XXXX Serviço Temporariamente Indisponível. YYYYY";
if(teste1.matches(testes))
System.out.println("OK");
else
System.out.println("NOT OK");
Como fazer na minha expressão para ela prever que possam existir caracteres antes e depois do que eu preciso avaliar?
Já tentou o método contains()?
Não funcionou, só que dessa vez para nenhum dos dois casos.
[quote=gandja99]Olá,
Recebo um texto grande na aplicação e preciso localizar uma string dentro do texto, porém estou com problemas devido à acentuação, para resolver isso comecei a usar uma expressão regular, ficaria+/- como abaixo:
String testes = "(Servi)[\\p{L}](o Temporariamente Indispon)[\\p{L}](vel)";
String teste1 = "Serviço Temporariamente Indisponível";
if(teste1.matches(testes))
System.out.println("OK");
else
System.out.println("NOT OK");
Do jeito que está aí funciona numa boa, mas se a string que quero verificar tiver algo antes ou depois ele não funciona, por exemplo:
String testes = "(Servi)[\\p{L}](o Temporariamente Indispon)[\\p{L}](vel)";
String teste1 = "XXXX Serviço Temporariamente Indisponível. YYYYY";
if(teste1.matches(testes))
System.out.println("OK");
else
System.out.println("NOT OK");
Como fazer na minha expressão para ela prever que possam existir caracteres antes e depois do que eu preciso avaliar?
[/quote]
String testes = "*(Servi)[\\p{L}](o Temporariamente Indispon)[\\p{L}](vel)*";
String teste1 = "Serviço Temporariamente Indisponível";
if(teste1.matches(testes))
System.out.println("OK");
else
System.out.println("NOT OK");
Consegui…
Coloquei (.*) na frete e o no final da string e funcionou, além disso troquei a expressão anterior por ? Ficou assim:
"(.*)(Servi)?(o Temporariamente Indispon)?(vel)(.*)"