正则表达式以查找任何类型的uuid或随机生成的文本

时间:2018-12-06 18:01:46

标签: regex url random uuid matching

我想在URL路径中找到任何uuid或随机生成的文本,并将其替换为<random>。例子:

  1. /test/ajs1d5haFkajs1dhasdd2as345sdAS3+Ddas9 = /test/<random>
  2. /test/akKd9Ja3/ajs1d5haFkajs1ddasd623ha5sdAS3Ddas9=/30 = /test/<random>/<random>/30
  3. /test/akKd9Ja3/Example-ASDAdddasd-108174.js = /test/<random>/Example-108174.js
  4. /test/akKd9Ja3-ASj83asj-dask92qwe_ke = /test/<random>

我正在寻找与字符串匹配的解决方案:

  • /
  • 开头
  • /$结尾
  • 包含[0-9]
  • 包含[a-z][A-Z]
  • 可以包含-=_+\s(spa
  • 不包含扩展名,即.<something>
  • 7个字符和更长的{7,}

这是我到目前为止使用的: /[a-zA-Z0-9-=_+\s]{30,}

这适用于大多数情况,因为uuid通常长于30个字符。但是我没有发现小的,即/5c88148//6qdkKdk5/。我也匹配Example-ASDAddasd-108174.js之类的东西。

1 个答案:

答案 0 :(得分:1)

更新-如果您要匹配的字符必须至少包含一位数字。您可以使用它。

(?<=\/)(?=[\w-+=\s]+[0-9])[\w-+=\s]{7,}(?![.])(?!\.)(?=\/|\n)

Demo for update

您可以尝试一下。

(?<=\/)[\w-+=\s]{7,}(?!\.)(?=\/|\n)
  

说明

  • (?<=\/)-积极回望。匹配“ /”。
  • [\w-+=\s]{7,}-匹配任何单词-+=,并间隔7个或更多时间。
  • (?!\.)-负面展望。与.不匹配。
  • (?=\/|\n)-积极向前看。匹配“ /”或“ \ n”(换行)。

Demo