alguém pode me ajudar com isso?
tenho um valor
id_Conteudo=5_idCategoria=10
queria uma ajuda pra pegar o numerico do (id_conteudo) e o numerico (id_categoria) usando regex
não precisa ser os dois na mesma expressão… pegando um valor já tá bom
alguém pode me ajudar com isso?
tenho um valor
id_Conteudo=5_idCategoria=10
queria uma ajuda pra pegar o numerico do (id_conteudo) e o numerico (id_categoria) usando regex
não precisa ser os dois na mesma expressão… pegando um valor já tá bom
Qual a String (expressão) exata que você quer extrair os valores?
Isso:
id_Conteudo=5_idCategoria=10
Tudo junto mesmo ou seriam duas expressões ali, tipo:
id_Conteudo=5
idCategoria=10
Ou aquele “_” (underline) é um separador? 
Abraços.
na verdade
eu vou receber um valor
id_Conteudo=5_idCategoria=10
ai por exemplo, quero passar como expressão (id_conteudo) e receber o número 5,
a mesma coisa com idCategoria…
é pq não tava afim de fazer substring, pq os números pode ser de vários tamanhos
Vou repetir a pergunta.
Isso aqui: id_Conteudo=5_idCategoria=10
É um único valor? Eu tenho todo esse conteúdo e tenho que extrair os números?
Eu não consigo pensar em uma ER porque não consigo enxergar o que tu quer e o conteúdo exato.
Imagina uma String.
String s = algum valor...
O que tu iria colocar em “algum valor” e que informação gostaria que fosse extraída?
sempre vai ser esse valor… só mudando os númericos
id_Conteudo=5_idCategoria=10
id_Conteudo=7_idCategoria=13
id_Conteudo=89_idCategoria=14
id_Conteudo=43_idCategoria=6
preciso só extrair os númericos…
IZI só na gambis 
String expressao = "id_Conteudo";
//String expressao = "idCategoria";
String a ="id_Conteudo=89_idCategoria=14";
if("id_Conteudo".equals(expressao)){
String[] aa = a.split("_i");
System.out.println(aa[0].substring(12));
}else{
String[] aa = a.split("_");
System.out.println(aa[2].substring(12));
}
vlw parceiro
só uma coisa…
eu vi que tava “meio” fora do padrão
pq tava idCategoria e id_conteudo
fiz um ajuste no conteudo
ficaria assim
CONT_idConteudo=8439_idCategoria=14323
é, eu nao conseguir ajustar teu código, pode me ajudar?
Tem isso.
String s = expressao.replaceAll("\\d+", "");
Isso vai substituir tudo o que não for digito por nada. O problema disso é que vai juntar os números.
Podes substituir por espaço em branco, depois dar um trim no resultado e um split em seguida, para separa-los.
Algo assim:
String s = expressao.replaceAll("\\d+", "").trim();
String[] vet = s.split("[ ]+");
int id1 = vet[0];
int id2 = vet[1];
Tenta ai, veja se te supri. Mas isso ai em uma única expressão regular, eu teria de pensar com mais calma pois não sei te responder agora.
//String expressao = "CONT_idConteudo";
String expressao = "idCategoria";
String a ="CONT_idConteudo=8439_idCategoria=14323";
if("CONT_idConteudo".equals(expressao)){
String[] aa = a.split("_idCa");
System.out.println(aa[0].substring(16));
}else{
String[] aa = a.split("_");
System.out.println(aa[2].substring(12));
}
ate pode existir um regex melhor que este …
([a-zA-Z_=]{1,50})([0-9]{1,3})
da um replace pelo grupo 2 e pronto vais pegar o valor id_Conteudo=5 e transformar para 5
se fizer ([a-zA-Z_=]{1,50})([0-9]{1,3})([a-zA-Z_=]{1,50})([0-9]{1,3})
e dar um replace para o grupo 2 e 4 ex: “$2 $4” vais obert “5 10”