Youtube завершил Java Regex

Мне нужно проанализировать несколько страниц, чтобы получить все их идентификаторы Youtube.

Я нашел много регулярных выражений в Интернете, но: Java-выражения неполные (они либо выдают мне мусор в дополнение к идентификаторам, либо пропускают некоторые идентификаторы).

Я нашел то, что похоже на Complete размещается здесь . Но он написан на JavaScript и PHP. К сожалению, я не смог перевести их в JAVA.

Может ли кто-нибудь помочь мне переписать это регулярное выражение PHP или следующее выражение JavaScript на Java?

'~
    https?://         # Required scheme. Either http or https.
    (?:[0-9A-Z-]+\.)? # Optional subdomain.
    (?:               # Group host alternatives.
      youtu\.be/      # Either youtu.be,
    | youtube\.com    # or youtube.com followed by
      \S*             # Allow anything up to VIDEO_ID,
      [^\w\-\s]       # but char before ID is non-ID char.
    )                 # End host alternatives.
    ([\w\-]{11})      # $1: VIDEO_ID is exactly 11 chars.
    (?=[^\w\-]|$)     # Assert next char is non-ID or EOS.
    (?!               # Assert URL is not pre-linked.
      [?=&+%\w]*      # Allow URL (query) remainder.
      (?:             # Group pre-linked alternatives.
        [\'"][^<>]*>  # Either inside a start tag,
      |           # or inside  element text contents.
      )               # End recognized pre-linked alts.
    )                 # End negative lookahead assertion.
    [?=&+%\w]*        # Consume any URL (query) remainder.
    ~ix'
/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com\S*[^\w\-\s])([\w\-]{11})(?=[^\w\-]|$)(?![?=&+%\w]*(?:['"][^<>]*>|<\/a>))[?=&+%\w]*/ig;

11
задан Community 23 May 2017 в 11:46
поделиться