Python utilities for working with CSDMS Standard Names.
CSDMS Standard Names is an element of the CSDMS Workbench, an integrated system of software tools, technologies, and standards for building and coupling models.
^ # Start of the object name
[a-z]+ # Starts with one or more lowercase letters
(?: # Start of a non-capturing group for subsequent parts
[-~_]? # Optional separator: hyphen, tilde, or underscore
[a-zA-Z0-9]+ # One or more alphanumeric characters
)* # Zero or more repetitions of the group
__ # Double underscore separator
[a-z]+ # Start of the quantity
(?: # Start of a non-capturing group for subsequent parts
[-~_]? # Optional separator: hyphen, tilde, or underscore
[a-zA-Z0-9]+ # One or more alphanumeric characters
)* # Zero or more repetitions of the group
$ # End of the name
Start
= LowercaseWord UnderscoreSeparator LowercaseWord
LowercaseWord
= [a-z] AdditionalCharacters*
AdditionalCharacters
= Separator? Alphanumeric+
Separator
= "-" / "~" / "_"
Alphanumeric
= [a-zA-Z0-9]
UnderscoreSeparator
= "__"