Padrões comuns de expressão regular

Importação

_ <- fat.extra.regex

Constantes

  • alphaOnly
  • alphaNum
  • digitsOnly
  • emailAddress
  • httpUrl
  • ipAddress
  • isbnCode
  • numericValue

Notas de uso

Aqui estão alguns exemplos de como combinar o texto com as expressões regulares fornecidas por esta biblioteca usando o método match do protótipo Text:

_ <- fat.extra.regex

"abc".match(alphaOnly)  # saída: true

"abc123".match(alphaNum)  # saída: true

"123".match(digitsOnly)  # saída: true

"johndoe@example.com".match(emailAddress)  # saída: true

"https://www.example.com/page?query=param".match(httpUrl)  # saída: true

"192.168.0.1".match(ipAddress)  # saída: true

"1-56619-909-3".match(isbnCode)  # saída: true

"3.14159e-5".match(numericValue)  # saída: true

Observe que as expressões regulares podem exigir modificações com base em casos de uso ou requisitos específicos. Por exemplo, pode ser necessário modificar a expressão regular httpUrl para corresponder a URLs que incluem um número de porta. Certifique-se de testar seus próprios dados de entrada para garantir que estejam funcionando conforme o esperado.

No momento, o suporte regex do FatScript está limitado apenas à correspondência. Você não pode usar expressões regulares para operações de localizar e substituir.

Detalhes técnicos

As expressões regulares podem ser ferramentas muito poderosas, mas também podem ser complexas e difíceis de fazer direito.

O FatScript implementa o dialeto POSIX regex estendido, que é o mesmo dialeto usado por grep. Nos bastidores, o FatScript usa a função regexec para executar a correspondência de expressões regulares.

Aqui está a implementação exata do regex fornecida por esta biblioteca que pode servir de inspiração para sua própria escrita:

# alphaOnly: corresponde apenas a um ou mais caracteres do alfabeto
^[[:alpha:]]+$

# alphaNum: corresponde a um ou mais caracteres do alfabeto e dígitos
^[[:alnum:]]+$

# digitsOnly: corresponde apenas a um ou mais dígitos
^[[:digit:]]+$

# emailAddress: corresponde a um endereço de e-mail válido, com um ou mais
# caracteres alfanuméricos, pontos, sublinhados, sinais de adição ou hifens
# antes do símbolo @, e um ou mais caracteres alfanuméricos, pontos ou hifens
# após o símbolo @ seguido por um domínio superior de duas a quatro letras
^[[:alnum:]_.+-]+@[[:alnum:]_.-]+\.[[:alpha:].]{2,4}$

# httpUrl: corresponde a um URL válido http ou https, nome de domínio (um ou
# mais caracteres alfanuméricos seguidos de um ponto) e o caminho (zero ou mais
# caracteres incluindo caracteres alfanuméricos, pontos, hifens, pontos de
# interrogação, sinais de igual, e comercial, porcentagem ou libra)
^(http|https):\/\/([[:alnum:]]+\.)+[[:alpha:]]{2,6}([\/[:alnum:]\.\-\?\=\&\%#]+)?$

# ipAddress: corresponde a um endereço IP válido na notação dotted-quad,
# com quatro grupos de um a três dígitos separados por pontos
^([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}$

# isbnCode: corresponde a um ISBN com 10 ou 13 dígitos, com o último dígito
# sendo um dígito de 0-9 ou a letra "X" para representar 10, permitindo hífens
# ou espaços para serem usados como separadores entre grupos de dígitos
^[0-9]{1,5}[- ]?[0-9]{1,7}[- ]?([0-9]{1,6}[- ]?[0-9]|[0-9][- ]?[0-9]{3,5})[- ]?[0-9X]$

# numericValue: corresponde a um valor numérico, incluindo um sinal negativo opcional
# no início, um ou mais dígitos antes de uma parte decimal opcional (um ponto seguido
# por um ou mais dígitos) e uma parte exponencial opcional (letra 'e' seguida por um
# sinal opcional e um ou mais dígitos)
^-?[[:digit:]]+(\.[[:digit:]]+)?(e[+-]?[[:digit:]]+)?$

Ao definir expressões regulares em FatScript, prefira usar textos brutos e lembre-se de escapar as barras invertidas conforme necessário, garantindo que as expressões regulares sejam interpretadas corretamente.

Veja também

results matching ""

    No results matching ""