Skip to content

Feature Request: Support in-pattern named groups #53

@KyNorthstar

Description

@KyNorthstar

I'd love to have this support the same named groups that NSRE supports, like this:

// NSRegularExpression
try! NSRegularExpression(pattern:
        "^(?<major>\\d+)\\." +
        "(?<minor>\\d+)\\." +
        "(?<patch>\\d+)" +
        "(?:-(?<preRelease>(?:(?<preReleaseId>[0-9A-Za-z-]+)\\.?)+))?" +
        "(?:\\+(?<build>(?:(?<buildId>[0-9A-Za-z-]+)\\.?)+))?$",
        options: [])

// Crossroad Labs Regex
try! Regex(pattern:
        "^(?<major>\\d+)\\." +
        "(?<minor>\\d+)\\." +
        "(?<patch>\\d+)" +
        "(?:-(?<preRelease>(?:(?<preReleaseId>[0-9A-Za-z-]+)\\.?)+))?" +
        "(?:\\+(?<build>(?:(?<buildId>[0-9A-Za-z-]+)\\.?)+))?$",
        groupNames: "major", "minor", "patch", "preRelease", "preReleaseId", "build", "buildId")

This feels fragile to me; I feel like it might easily slip so that one group's name doesn't represent the intended group, and that might be subtle enough to not catch in testing.

It's also silly because it accepts the same syntax for in-pattern group names that NSRegularExpression accepts, without using it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions