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.