Youtube-komplette Java Regex
Muss ich analysieren mehrere Seiten, um alle Ihre Youtube-IDs.
Fand ich viele reguläre Ausdrücke, die auf das web, aber : die Java-diejenigen, die nicht vollständig sind (entweder Sie geben mir Müll neben die IDs, oder Sie verpassen einige IDs).
Die, die ich gefunden, das scheint zu sein, vollständig gehostet wird hier. Aber es steht geschrieben in JavaScript und PHP. Leider konnte ich das nicht übersetzen in JAVA.
Kann mir jemand helfen diese umschreiben PHP regex oder den folgenden JavaScript-Code einer in 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,
| </a> # or inside <a> 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;
- warum hat die optionalen subdomain nicht zulassen, dass für Kleinbuchstaben? Vielleicht möchten Sie das ändern, das Teil zu
...[0-9A-Za-z-]...
- es ist die
i
Flagge. - ah, gut zu fangen, hat nicht gelesen, dass weit Voraus in der regex.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst muss man sich einfügen und die zusätzlichen umgekehrten Schrägstrich
\
foreach-backslash in der alten regex, anderes java denkt, dass Sie entkommt, einige andere Sonderzeichen in der Zeichenfolge, die Sie nicht tun.Weiter, wenn Sie kompilieren Sie Ihr Muster, das Sie brauchen, um hinzuzufügen, die
CASE_INSENSITIVE
Flagge. Hier ist ein Beispiel:Marcus hat oben einen guten regex, aber ich fand, dass es nicht erkennt youtube-links mit "www", aber nicht "http(s)" in Ihnen
zum Beispiel http://www.youtube....
habe ich ein update:
es ist das gleiche, außer für die start -