internal/services/myvalidator/string_is_valid_regex.go (30 lines of code) (raw):

package myvalidator import ( "context" "regexp" "github.com/hashicorp/terraform-plugin-framework/schema/validator" ) type stringIsValidRegex struct{} func (v stringIsValidRegex) Description(ctx context.Context) string { return "validates that the string compiles as a valid Go regular expression" } func (v stringIsValidRegex) MarkdownDescription(ctx context.Context) string { return "validates that the string compiles as a valid Go regular expression" } func (stringIsValidRegex) ValidateString(ctx context.Context, req validator.StringRequest, resp *validator.StringResponse) { str := req.ConfigValue if str.IsUnknown() || str.IsNull() { return } strval := str.ValueString() if _, err := regexp.Compile(strval); err != nil { resp.Diagnostics.AddAttributeError( req.Path, "Invalid regular expression", err.Error(), ) } } func StringIsValidRegex() validator.String { return stringIsValidRegex{} }