Regex для поиска любого вида UUID или случайно сгенерированного текста - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу найти любой тип uuid или случайно сгенерированного текста в пути URL и заменить его на <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,}

Это работает в большинстве случаев, поскольку uuids часто длиннее 30 символов. Но я не ловлю маленьких то есть /5c88148/ или /6qdkKdk5/. Я также сопоставляюсь с такими вещами, как Example-ASDAddasd-108174.js.

1 Ответ

0 голосов
/ 06 декабря 2018

Обновление - Если вы хотите, чтобы совпадение содержало хотя бы одну цифру. Вы можете использовать это.

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

Демонстрация для обновления

Вы можете попробовать это.

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

Пояснение

  • (?<=\/) - Позитивный взгляд позади.Соответствует '/'.
  • [\w-+=\s]{7,} - соответствует любому слову, -, +, = и пробелу 7 или более раз.
  • (?!\.) - отрицательныйсмотреть вперед.Не совпадают ..
  • (?=\/|\n) - позитивный взгляд в будущее.Соответствует '/' или '\ n' (Новая строка).

Демо

...