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

Regex to finding any kind of uuid or random generated text

我想在 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>

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

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

这适用于大多数情况,因为 uuid 通常超过 30 个字符。但我没有捕捉到 小的 /5c88148//6qdkKdk5/。我也匹配 Example-ASDAddasd-108174.js.

之类的东西

更新 - 如果你想要匹配必须包含至少一个 digit.You 可以使用这个。

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

Demo for update

你可以试试这个。

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

Explanation

  • (?<=\/) - 正面看后面。匹配“/”。
  • [\w-+=\s]{7,} - 匹配任何单词字符,-+= 和 space 7 次或更多次。
  • (?!\.) - 负面展望。不匹配 ..
  • (?=\/|\n) - 积极展望未来。匹配 '/' 或 '\n'(新行)。

Demo