Variable Case Regular Expressions#
Extracted from CaseMatcher.kt.
Patterns#
Lower Flat Case#
Represents matching for flat case, e.g. 'flatcase'
Can be also referred as: lower flat case
Note: Cannot distinguish from regular lowercase words (e.g.,
if,for,return).
[a-z0-9]+
# ripgrep (matches all lowercase words)
rg -ow '[a-z0-9]+' file.txt
# grep
grep -oE '[a-z0-9]+' file.txt
Upper Flat Case#
Represents matching for upper flat case, e.g. 'UPPERFLATCASE'
Note: Cannot distinguish from regular uppercase words (e.g.,
IF,FOR,NULL).
[A-Z0-9]+
# ripgrep (matches all uppercase words)
rg -ow '[A-Z0-9]+' file.txt
# grep
grep -oE '[A-Z0-9]+' file.txt
Lower Camel Case#
Represents matching for camel case, e.g. 'camelCase'
Can be also referred as: lower camel case, dromedary case
[a-z]+(?:[A-Z0-9]+[a-z0-9]+[A-Za-z0-9]*)*
# ripgrep (strict: requires at least one uppercase)
rg -ow '[a-z]+[A-Z][a-z0-9]+[A-Za-z0-9]*' file.txt
# grep
grep -oE '[a-z]+[A-Z][a-z0-9]+[A-Za-z0-9]*' file.txt
Upper Camel Case#
Represents matching for upper camel case, e.g. 'UpperCamelCase'
Can be also referred as: pascal case, studly case
(?:[A-Z][a-z0-9]+)(?:[A-Z]+[a-z0-9]*)*
# ripgrep (strict: requires at least one case transition)
rg -ow '[A-Z][a-z0-9]+[A-Z][a-z0-9]*[A-Za-z0-9]*' file.txt
# grep
grep -oE '[A-Z][a-z0-9]+[A-Z][a-z0-9]*[A-Za-z0-9]*' file.txt
Snake Case#
Represents matching for snake case, e.g. 'snake_case'
Can be also referred as: lower snake case, pothole case
[a-z0-9]+(?:_[a-z0-9]+)*
# ripgrep (strict: requires at least one underscore)
rg -ow '[a-z0-9]+_[a-z0-9_]+' file.txt
# grep
grep -oE '[a-z0-9]+_[a-z0-9_]+' file.txt
Screaming Snake Case#
Represents matching for screaming snake case, e.g. 'SCREAMING_SNAKE_CASE'
Can be also referred as: upper snake case, macro case, constant case
[A-Z0-9]+(?:_[A-Z0-9]+)*
# ripgrep (strict: requires at least one underscore)
rg -ow '[A-Z0-9]+_[A-Z0-9_]+' file.txt
# grep
grep -oE '[A-Z0-9]+_[A-Z0-9_]+' file.txt
Camel Snake Case#
Represents matching for camel snake case, e.g. 'Camel_Snake_Case'
[A-Z][a-z0-9]+(?:_[A-Z]+[a-z0-9]*)*
# ripgrep (strict: requires at least one underscore)
rg -ow '[A-Z][a-z0-9]+_[A-Z][a-z0-9_]+' file.txt
# grep
grep -oE '[A-Z][a-z0-9]+_[A-Z][a-z0-9_]+' file.txt
Kebab Case#
Represents matching for kebab case, e.g. 'kebab-case'
Can be also referred as: lower kebab case, dash case, lisp case
[a-z0-9]+(?:-[a-z0-9]+)*
# ripgrep (strict: requires at least one dash)
rg -ow '[a-z0-9]+-[a-z0-9-]+' file.txt
# grep
grep -oE '[a-z0-9]+-[a-z0-9-]+' file.txt
Screaming Kebab Case#
Represents matching for screaming kebab case, e.g. 'SCREAMING-KEBAB-CASE'
Can be also referred as: upper kebab case, cobol case
[A-Z0-9]+(?:-[A-Z0-9]+)*
# ripgrep (strict: requires at least one dash)
rg -ow '[A-Z0-9]+-[A-Z0-9-]+' file.txt
# grep
grep -oE '[A-Z0-9]+-[A-Z0-9-]+' file.txt
Train Case#
Represents matching for train case, e.g. 'Train-Case'
[A-Z][a-z0-9]+(?:-[A-Z]+[a-z0-9]*)*
# ripgrep (strict: requires at least one dash)
rg -ow '[A-Z][a-z0-9]+-[A-Z][a-z0-9-]+' file.txt
# grep
grep -oE '[A-Z][a-z0-9]+-[A-Z][a-z0-9-]+' file.txt
Quick reference#
| Case | Regex |
|---|---|
LowerFlat |
[a-z0-9]+ |
UpperFlat |
[A-Z0-9]+ |
LowerCamel |
[a-z]+(?:[A-Z0-9]+[a-z0-9]+[A-Za-z0-9]*)* |
UpperCamel |
(?:[A-Z][a-z0-9]+)(?:[A-Z]+[a-z0-9]*)* |
Snake |
[a-z0-9]+(?:_[a-z0-9]+)* |
ScreamingSnake |
[A-Z0-9]+(?:_[A-Z0-9]+)* |
CamelSnake |
[A-Z][a-z0-9]+(?:_[A-Z]+[a-z0-9]*)* |
Kebab |
[a-z0-9]+(?:-[a-z0-9]+)* |
ScreamingKebab |
[A-Z0-9]+(?:-[A-Z0-9]+)* |
Train |
[A-Z][a-z0-9]+(?:-[A-Z]+[a-z0-9]*)* |