Parse semantic version

Supported in: Batch, Streaming

Parses a semantic version string into a logical type. Supports both release versions (e.g., "0.987.0") and versions with prerelease metadata (e.g., "0.987.0-16-gb3fb285"). Returns null for strings that do not match the expected format.

Expression categories: String

Declared arguments

  • Version string: Semantic version string. Supports both release versions (major.minor.patch) and versions with prerelease metadata (major.minor.patch-prerelease).
    Expression<String>

Output type: Semantic Version

Examples

Example 1: Base case

Argument values:

  • Version string: version
versionOutput
0.987.0-16-gb3fb285{
 major -> 0,
 minor -> 987,
 patch -> 0,
 prerelease -> [ 16-gb3fb285 ],
}
1.0.0-0-g0000000{
 major -> 1,
 minor -> 0,
 patch -> 0,
 prerelease -> [ 0-g0000000 ],
}
2.5.3-42-gabc1234{
 major -> 2,
 minor -> 5,
 patch -> 3,
 prerelease -> [ 42-gabc1234 ],
}
0.987.0-SNAPSHOT{
 major -> 0,
 minor -> 987,
 patch -> 0,
 prerelease -> [ SNAPSHOT ],
}

Example 2: Base case

Argument values:

  • Version string: version
versionOutput
0.987.0{
 major -> 0,
 minor -> 987,
 patch -> 0,
 prerelease -> [ ],
}
1.0.0{
 major -> 1,
 minor -> 0,
 patch -> 0,
 prerelease -> [ ],
}
2.5.3{
 major -> 2,
 minor -> 5,
 patch -> 3,
 prerelease -> [ ],
}

Example 3: Null case

Argument values:

  • Version string: version
versionOutput
nullnull

Example 4: Edge case

Argument values:

  • Version string: version
versionOutput
invalid version stringnull
not-a-versionnull
1.0null