TOML Bare Key Regex for Go
/^[a-zA-Z0-9_\-]+$/What this pattern does
This page provides a lightweight, single-purpose regular expression for matching toml bare key, ported and verified for Go. A rigorously tested regex reduces debugging time and protects your application from edge-case failures. The snippet below is ready to drop into your Go project — whether you're validating in a Gin handler, a gRPC service, or a command-line tool.
Go Implementation
// TOML Bare Key
// ReDoS-safe | RegexVault — Dev & Systems > Config
package validation
import "regexp"
var tomlBareKeyRe = regexp.MustCompile(`^[a-zA-Z0-9_\-]+$`)
func ValidateTomlBareKey(s string) bool {
return tomlBareKeyRe.MatchString(s)
}
// Example
// fmt.Println(ValidateTomlBareKey("name")) // trueTest Cases
Matches (Valid) | Rejects (Invalid) |
|---|---|
name | my key |
my-key | key.name |
a_b_c | "quoted" |
key123 | 'single' |
UPPER_CASE | key! |
When to use this pattern
This pattern is drawn from the Dev & Systems > Config category and carries a ReDoS-safe certification. That matters for Go developers because Go's RE2 engine is inherently safe from catastrophic backtracking, but this pattern has been additionally verified for correctness. RegexVault audits patterns against known backtracking attack vectors, ensuring you have the necessary context before using this regex in a high-stakes production environment.
Common Pitfalls
TOML allows Unicode in quoted keys but not bare keys. Numeric bare keys are valid (1 = 'one'). The restrictive format keeps TOML files readable without quoting common identifiers.
Technical Notes
TOML bare keys are restrictive — dots, spaces, and most special characters require quoting. Dotted keys (table.key = value) are parsed differently — split by dots first. Quoted keys in TOML are valid for names with spaces.
Have a pattern that belongs in the vault?
Submit it for review — community-verified patterns get credited to your GitHub handle. Free submissions join the queue. Priority review available for $15.
Submit a Pattern