【问题标题】:Creating a regex pattern to match "string/uuid" pattern创建正则表达式模式以匹配“字符串/uuid”模式
【发布时间】:2017-07-20 14:04:54
【问题描述】:

这样的字符串会匹配:

"test/00b46e01-3994-4ac2-939e-2d5052a65961"

或者像这样

"anotherword/58628d3f-becf-4f54-bdea-336ca9247145"

我的 uuid (v4) 的正则表达式是 "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" 用于我的 JSON 模式(即我的 JSON 对象拥有一个 uuid 属性),但现在我也想在这个模式前面加入“字符串/”。

【问题讨论】:

  • 如果您想匹配 ASCII 字母后跟 /,请尝试在 ^ 之后添加 [a-zA-Z]+/
  • 或者只是添加(在^ 之后)[^/]+/ 以匹配除/ 之外的任何1+ 个字符,然后是/
  • 太棒了!如果您愿意,可以将其添加为答案。

标签: regex uuid jsonschema


【解决方案1】:

您可以使用negated character class 之类的[^/]+ 来匹配除// 之外的1 个或多个字符,位于^ 之后的模式开头:

"^[^/]+/[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
  ^^^^^^

请参阅regex demo

如果您还想匹配在/ 之前没有字符的字符串,请将@​​987654329@ 量词(匹配1 次或多次)替换为*(0 次或多次)。

【讨论】:

    猜你喜欢
    • 2018-07-15
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2015-11-14
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多