Regex, um alles vor dem vorletzten Schrägstrich zu entfernen

-1

Hier ist eine Beispielzeichenfolge

https://www.facebook.com/pages/Something/976313416535/

Welcher reguläre Ausdruck kann das " Something" aus dieser Zeichenfolge extrahieren ?

sub(".*[/@]", "", x) 

wird alles vor dem letzten Schrägstrich entfernen, aber wie kann ich alles vor dem vorletzten entfernen?

Revan
quelle
Möchten Sie extrahieren Somethingoder /Something/976313416535/? Ihre Beschreibung ist nicht konsistent.
Fixer1234

Antworten:

0

Dieser Regex wird "etwas" finden.

^.*\/(.*)\/.*\/$

Ersetzen Sie es durch

\1

Es funktioniert auf https://regex101.com/ für alle (PCRE (PHP), ECMAScript, (JavaScript), Python, Golang), aber es hat sich geweigert, mit Notepad + find replace zu arbeiten.

VSRawat
quelle
0

Ich kenne die Sprache nicht, aber hier ist eine PCRE-Regex, die für Sie funktioniert (zumindest bei Regex101 ). Sie stimmt mit dem vorletzten Element im Pfad überein (dh Something).

^.+/\K[^/]+(?=/[^/]+/)

Erläuterung:

^           # beginning of string
  .+        # 1 or more any character
  /         # a slash
  \K        # forget all we have seen until this position
  [^/]+     # 1 or more non slash
  (?=       # start lookahead, zero-length assertion to make sure we have after:
    /       # a slash
    [^/]+   # 1 or more non slash (the string wanted)
    /       # a slash
  )         # end lookahead
Toto
quelle
0

Dieser reguläre Ausdruck

/(.*\/)([^/]*)(\/[^/]*\/)$/m 

wird finden:

https://www.facebook.com/pages/ (group 1)
Something (group 2)
/976313416535/ (group 3)

Sie können es durch das ersetzen, was Sie wollen. In Javascript:

const regex = /(.*\/)([^/]*)(\/[^/]*\/)$/m;
const str = `https://www.facebook.com/pages/Something/976313416535/`;
let m = str.replace(regex,"$1whatever_you_want$3");
console.log(m); 

//Output - https://www.facebook.com/pages/whatever_you_want/976313416535/

Sie können es hier Regex101 arbeiten sehen und Spiel hier Regex101 beenden

Soth
quelle