Quer lidar com a validação regular de caracteres de string? Este método é o mais fácil e a qualidade é alta!

Na programação, o processamento de strings é uma parte inevitável. Muitas vezes precisamos validar dados inseridos pelo usuário, extrair informações de texto, substituir caracteres específicos e muito mais. Nestes cenários, a Validação Regex nos fornece um método de processamento eficiente e flexível.

Expressões regulares são uma ferramenta poderosa para descrever padrões de strings. Consiste em uma série de caracteres especiais e regras que podem ser usadas para combinar strings que correspondam a padrões específicos. Expressões regulares podem ser usadas em muitas linguagens de programação, como Python, Java, JavaScript, etc. Neste artigo, discutimos principalmente como usar Java para implementar verificação regular de strings.

A sintaxe das expressões regulares inclui as seguintes partes:

Metacaracteres: descrevem os atributos do próprio caractere, como . (ponto) representa qualquer caractere, * (asterisco) representa o número de repetições do caracter anterior e + (sinal de mais) representa o número de repetições do caracter anterior maior. maior ou igual a 1 vez.

Classe de caracteres: representada por colchetes [], que pode incluir números, letras, caracteres especiais, etc., como [az] representando quaisquer letras minúsculas.

Caractere de escape: representado por barra invertida\, usado para escapar de caracteres especiais, como \d representa qualquer número.

Seletor: representado por uma barra vertical |, usado para selecionar um dos vários padrões, como a|b significa combinar o caractere a ou b.

Qualificador: descreve o número de repetições do padrão, como {n} indicando n vezes.

Localizador: descreve a posição do padrão, como ^ representa o início da linha, $ representa o fim da linha.

Dominar a sintaxe das expressões regulares é a base. A seguir apresentaremos várias operações comuns:

Correspondência de string: Use o operador match (=) para verificar se uma string corresponde a um padrão específico. Por exemplo, ^[az]+$ significa verificar se a string consiste em letras minúsculas.

Substituição de string: Use o operador de substituição (s/…/…/) para substituir uma string que corresponde a um padrão específico por outra string. Por exemplo, s/world/China/g significa substituir todas as ocorrências de “mundo” por “China”.

Extração de string: Use o operador de captura (()) para extrair strings que correspondam a um padrão específico. Por exemplo, ([az]+) significa extrair uma string composta por letras minúsculas.

Expressões regulares podem ser usadas em muitos cenários, aqui estão alguns exemplos:

Validar a entrada do usuário: você pode usar expressões regulares para verificar se os dados inseridos pelo usuário estão em conformidade com um formato específico, como número de celular, endereço de e-mail, etc.

Limpeza de dados: você pode usar expressões regulares para remover espaços extras, caracteres especiais, etc.

Extração de informações: Expressões regulares podem ser usadas para extrair informações necessárias, como datas, valores, etc., de grandes seções de texto.

Teste automatizado: Expressões regulares podem ser usadas para gerar casos de teste para melhorar a cobertura do teste.

Análise de segurança: Expressões regulares podem ser usadas para identificar possíveis vulnerabilidades de segurança, como injeção de SQL, ataques de script entre sites, etc.

A seguir, vamos dar uma olhada em um exemplo de código Java de aplicativo de expressão regular específico:

// 类名:RegexValidator

// 函数名:validateString

// 函数功能:正则验证字符串

// POM依赖包:无



import java.util.regex.Pattern;



public class RegexValidator {

    /**

     * 正则验证字符串

     * @param regex 正则表达式

     * @param str 待验证的字符串

     * @return 是否匹配正则表达式

     */

    public static boolean validateString(String regex, String str) {

        if (regex == null || str == null) { // 检查入参是否为空

            throw new IllegalArgumentException("Regex and string cannot be null"); // 抛出异常,正则表达式和字符串不能为空

        }



        Pattern pattern = Pattern.compile(regex); // 编译正则表达式

        return pattern.matcher(str).matches(); // 使用正则表达式匹配字符串,并返回结果

    }

}



// 函数示例

// 正则验证字符串示例

// 入参:regex,正则表达式;str,待验证的字符串

// 出参:isValid,是否匹配正则表达式

// 调用示例:

// String regex = "\\d+";

// String str = "12345";

// boolean isValid = RegexValidator.validateString(regex, str);

// System.out.println(isValid);

// 输出结果:例如,通过正则表达式"\\d+"验证字符串"12345",结果为:true

// 则输出结果为:true

O código acima define uma classe chamada RegexValidator, que contém um método estático chamado validString. Este método recebe dois parâmetros de string: um é uma expressão regular (regex) e o outro é uma string que precisa ser verificada (str).

No corpo do método, primeiro verificamos se os dois parâmetros estão vazios e, em caso afirmativo, uma exceção é lançada. Em seguida, a expressão regular é compilada usando o método Pattern.compile e um objeto Pattern é criado. Finalmente, use o método matcher e o método matches deste objeto Pattern para verificar se a string de entrada corresponde à expressão regular.

Deve-se notar que este código é gerado pelo FuncGPT (Hui Function), um gerador de IA de função Java lançado pelo robô de software Feisuan SoFlu. Em outras palavras, este é um exemplo de código gerado automaticamente pela tecnologia de IA. Esse exemplo de código gerado em segundos pode ajudar os desenvolvedores a aplicá-lo diretamente ao trabalho real? Qual é a qualidade do código? Digitamos o código em Wen Xinyiyan e pedimos a ele que avaliasse o código acima. O feedback dado foi que se trata de um código com alta qualidade, boa legibilidade, facilidade de manutenção e robustez.

Conclusão

A validação regular de caracteres de string pode ajudar os programadores a realizar facilmente correspondências complexas ao processar strings. Ao aprender a sintaxe e as operações das expressões regulares, podemos lidar melhor com vários cenários de processamento de strings. Com o desenvolvimento contínuo da tecnologia, as expressões regulares têm perspectivas de aplicação mais amplas e desempenharão um papel maior no processamento de dados, processamento de linguagem natural e outros campos no futuro. Com base no domínio de sintaxe e operações específicas, os desenvolvedores também podem selecionar ferramentas com qualidade garantida e usar ferramentas como o robô de software SoFlu FuncGPT para ajudá-los a melhorar a eficiência do desenvolvimento.

IntelliJ IDEA 2023.3 e JetBrains Family Bucket atualização anual da versão principal novo conceito "programação defensiva": torne-se um trabalho estável GitHub.com executa mais de 1.200 hosts MySQL, como atualizar perfeitamente para 8.0? A equipe Web3 de Stephen Chow lançará um aplicativo independente no próximo mês. O Firefox será eliminado? Visual Studio Code 1.85 lançado, janela flutuante Yu Chengdong: Huawei lançará produtos disruptivos no próximo ano e reescreverá a história da indústria. A CISA dos EUA recomenda abandonar C/C++ para eliminar vulnerabilidades de segurança de memória. TIOBE Dezembro: C# deverá se tornar a programação linguagem do ano.Um artigo escrito por Lei Jun há 30 anos: "Princípio e Design do Sistema Especialista em Determinação de Vírus de Computador"
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/4868096/blog/10320117
Recomendado
Clasificación