6

Lua でパターンを実装しようとしていますが、成功しません

私が必要とするパターンは正規表現のようなものです:[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}

これはguidを検証することです。

Luaで実装正規表現を見つける適切な方法を見つけることができず、ドキュメントでも見つけることができません。

GUIDに上記の正規表現を実装するのを手伝ってください。

4

1 に答える 1

12

これを使用できます:

local pattern = "%x%x%x%x%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%-%x%x%x%x%x%x%x%x%x%x%x%x"
local guid = "3F2504E0-4F89-41D3-9A0C-0305E82C3301"
print(guid:match(pattern))

ご了承ください:

  1. 修飾子{8}は Lua パターンではサポートされていません。
  2. -でエスケープする必要があります%-
  3. 文字クラス%xは に相当し[0-9a-fA-F]ます。

@hjpotter92 によって提供された、補助テーブルを使用してパターンを構築する明確な方法:

local x = "%x"
local t = { x:rep(8), x:rep(4), x:rep(4), x:rep(4), x:rep(12) }
local pattern = table.concat(t, '%-')
于 2014-04-11T13:45:28.877 に答える