Ich versuche, eine Regex zu erstellen, die eine Abschrift URLs übereinstimmen, aber den Inhalt ignorieren, der davor und danach kommt. Es sollte nur lokale Abzeichnungs-URLs enthalten, die auf lokale Dateien verweisen und solche ignorieren, die auf externe Websites verweisen. Beispiel:Regex zu lokalen Markdown-Links
"dddd [link which should be ignore](http://google.com/) lorem ipsum lorem ips sum loreerm [link which shouldn't be ignored](../../../filepath/folder/some-other-folder/another-folder/one-last-folder/file-example.html). lorem ipsum lorem"
nur Sollte die zweite Verbindung übereinstimmen. Derzeit passt es alles zusammen. Mein Regex funktioniert für das, was ich brauche, aber das scheint der wichtigste Fall zu sein, den ich gefunden habe.
Was ich habe, so weit:
/(!?\[.*?\]\((?!.*?http)(?!.*?www\.)(?!.*?#)(?!.*?\.com)(?!.*?\.net)(?!.*?\.info)(?!.*?\.org).*?\))/g
Derzeit ignoriert dies die erste Verbindung und stimmt mit dem zweiten Link, wenn die zweite Verbindung nicht nach der ersten Verbindung kommt. Ansonsten passt es alles vom ersten bis zum zweiten.
Ich benutze JavaScript, das negative Lookbehinds nicht unterstützt. Irgendwelche Vorschläge?
Haben Sie eine lokale URLs aufnehmen möchten oder einfach nur testen, ob vorhanden ? –
Ich hatte einige Regeln zum Ignorieren von "http", ".com" usw. von der URL, dieser Teil muss nicht strenger sein für das, was ich mache. https://regex101.com/r/p6W9iE/1 < Ich mag würde, diese Arbeit zu machen, damit es den zweiten Link nur und dank @Sin passt, aber hat nicht funktioniert – ceckenrode
Ok, das dann '((!? \ [[^ \]] *? \]) \ ((? :(?! http | www \. | \ # | \ .com | \ .net | \ .info | \ .org).) *? \)) ' – sln