Regexed

Converter consultas e restrições de linguagem natural em construções de regex

É possível consultar um modelo diretamente e testar os resultados retornados ao usar diferentes valores de parâmetros com o console do Cloud ou ao chamar a API Vertex AI diretamente.

Comando Formato livre

Forneça o regex equivalente ao seguinte:

Meus requisitos são:

  1. Quero que a string tenha de 2 a 63 caracteres.
  2. A string deve ser alfanumérica e pode conter - também.
  3. A string deve começar e terminar somente com caracteres alfanuméricos.

Resposta

^[a-zA-Z0-9]{1}[a-zA-Z0-9-]{0,61}[a-zA-Z0-9]{1}$

Explicação:

  • ^: corresponde ao início da string.
  • [a-zA-Z0-9]{1}: corresponde a um caractere alfanumérico (a-z, A-Z, 0-9) no início da string.
  • [a-zA-Z0-9\-]{0,61}: faz a correspondência de zero a 61 caracteres alfanuméricos ou hífens (-) no meio da string. Isso garante que a string tenha um comprimento total de 2 a 63 caracteres.
  • [a-zA-Z0-9]{1}: corresponde a um caractere alfanumérico no final da string.
  • $: indica o fim da string.

Exemplos:

  • Strings válidas:
  • abc
  • 123-abc
  • abc-123
  • a-b-c-123
  • Strings inválidas:
  • -abc (começa com hífen)
  • abc- (termina com hífen)
  • abc123- (termina com hífen)
  • 1234567890123456789012345678901234567890 (mais do que 63 caracteres)

Código Python:

import re

regex = r"^[a-zA-Z0-9]{1}[a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]{1}$"

test_strings = [
"abc",
"123-abc",
"abc-123",
"a-b-c-123",
"-abc",
"abc-",
"abc123-",
"1234567890123456789012345678901234567890",
]

for string in test_strings:
match = re.match(regex, string)
if match:
print(f"'{string}' is a valid string.")
else:
print(f"'{string}' is an invalid string.")

Esse código mostra se cada string de teste é válida ou inválida com base no padrão regex.

Modelo: gemini-1.5-flash-001
Temperatura: 1
Máximo de tokens de saída: 8192
TopK: 40
TopP: 0,95