正規表現

自然言語クエリと制約を正規表現の構文に変換する

モデルにクエリを直接実行して、返された結果をテストできます。その場合、Cloud コンソールでさまざまなパラメータ値を使用することも、Vertex AI API を直接呼び出すこともできます。

自由形式のプロンプト

次の内容に相当する正規表現を教えてください。

要件は次のとおりです。

  1. 文字列の長さを 2~63 文字にする必要があります。
  2. 文字列は英数字で指定する必要があり、「-」を配置することもできます。
  3. 文字列の先頭と末尾は英数字のみにする必要があります。

レスポンス

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

説明:

  • ^: 文字列の先頭と一致します。
  • [a-zA-Z0-9]{1}: 文字列の先頭にある 1 つの英数字(a~z、A~Z、0~9)に一致します。
  • [a-zA-Z0-9\-]{0,61}: 文字列の途中にある 0~61 個の英数字またはハイフン(-)と一致します。これにより、文字列の合計長が 2~63 文字になります。
  • [a-zA-Z0-9]{1}: 文字列の末尾にある 1 つの英数字と一致します。
  • $: 文字列の末尾に一致します。

例:

  • 有効な文字列:
  • abc
  • 123-abc
  • abc-123
  • a-b-c-123
  • 無効な文字列:
  • -abc(ハイフンで始まる)
  • abc-(末尾がハイフン)
  • abc123-(末尾がハイフン)
  • 1234567890123456789012345678901234567890(63 文字超にする必要があります)

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.")

このコードは、正規表現パターンに基づいて、各テスト文字列が有効であるか無効であるかを出力します。

モデル: gemini-1.5-flash-001
温度: 1
最大出力トークン: 8192
トップ K 40
トップ P 0.95