estou querendo capturar o seguinte grupo de caracteres:
um ponto “.” seguido de 6 números
eu queria saber qual a sequencia de passos básicas e a expressão regular que usaria em Java, tipo: “\p{Punct}{1}\d{6}”, se puderem ajudar serei grato.
estou querendo capturar o seguinte grupo de caracteres:
um ponto “.” seguido de 6 números
eu queria saber qual a sequencia de passos básicas e a expressão regular que usaria em Java, tipo: “\p{Punct}{1}\d{6}”, se puderem ajudar serei grato.
ponto é um caracter especial, portanto deve ser precedido de um “”.
Dígito é algo de 0 a 9 (a menos que você queira os dígitos em árabe, chinês etc.). No Javadoc da classe java.util.regexp.Pattern aparece como “\d”, ou seja, em uma literal string você deve especificar como “\d”.
A string como você deve especificar em Java é:
“\.\d{6}”
muito obrigado, essas duas barras estava atrapalhando tudo, vlw.
acho que isso eliminas as duvidas, so falta utilizar a string capturada, ou vetor se for possivél, mas isso eu vou consultar.
aumentar o problema, consultei na net e so achei que o pessoal usa expressão regular só para verificar se uma string comtém ou não, ou seja booleano, o meu caso é diferente, eu quero além de verificar se tem esse número ou não é utilizar esse número. RESUMINDO: eu quero utilizar um expressão para extrair uma string e não para verificar se possuiu ou não.
Expressões regulares servem também para extrair pedaços.
Por exemplo, digamos que você tenha a expressão regular
“\(\d{2}\)\d{4}-\d{4}”
que serve para pegar o número de telefone “(99)1234-5678”.
Você quer pegar os dados “99”, “1234” e “5678” separados.
Na documentação esses dados são “grupos” (groups). Você precisa separá-los com “()” na expressão regular, que deve ser modificada para:
“\(color=red[/color]\)color=red[/color]-color=red[/color]”
Veja a documentação da classe java.util.regex.Matcher.
Cara brigado pela ajuda, acho que sou meio ruim para essa questão auto-ditata, pois não entendi a questão da captura, o meu problema é o seguinte:
após ler uma linha de texto em um arquivo quero descobrir se ela possui um ponto seguido de 6 números (já foi resolvido), então logo após quero passar esses 6 números para uma String.
o problema, não achei um método na classe Matcher que faça isso, o método toString dessa classe traz a informação sobre o matcher inteiro, mesmo após definir os grupos que disse na resposta anterior eu não sei o que fazer, como extrair esses números de match.
import java.util.regex.*;
class TesteRegexp {
public static void main(String[] args) {
String linha = "abacaxi pepino jiló .123567 12345. esp1234 123478 anfótero";
Pattern pattern = Pattern.compile ("\\.(\\d{6})");
Matcher matcher = pattern.matcher (linha);
if (matcher.find()) {
System.out.println (matcher.group (1)); // deve imprimir "123567"
}
}
}
A propósito: toString não é um método de propósito geral na maior parte das APIs do Java. Ele serve mais para “depuração”.
nossa perfeito agora, desculpa a chatisse ai, mas o desespera ta me matando aqui na monografia do meu curso, brigadão.