kzen.dev
  • Spørsmål
  • Tagger
  • Brukere
Meldinger
Belønninger
Registrering
Når du har registrert deg, vil du bli varslet om svar og kommentarer til spørsmålene dine.
Logg inn
Hvis du allerede har en konto, kan du logge inn for å sjekke nye varsler.
Det vil være belønninger for spørsmål, svar og kommentarer.
Mer
Kilde
Rediger
 silkAdmin
silkAdmin
Spørsmål

Matche banen til en URL, minus filnavnutvidelsen

Hva ville være det beste regulære uttrykket for dette scenariet?

Gitt denne nettadressen:

http://php.net/manual/en/function.preg-match.php

Hvordan skal jeg velge alt mellom (men ikke inkludert) http://php.net og .php:

/manual/en/function.preg-match

Dette er for en Nginx-konfigurasjonsfil.

11 2011-11-29T16:08:39+00:00 3
Peter Mortensen
Peter Mortensen
Redigerte spørsmål 30. juni 2014 в 5:46
Nginx - Wikipedia
en.wikipedia.org
Programmering
nginx
regex
Dette spørsmålet har 1 svar på engelsk, for å lese dem logge inn på kontoen din.
Løsning / svar
 FailedDev
FailedDev
29. november 2011 в 4:12
2011-11-29T16:12:37+00:00
Mer
Kilde
Rediger
#14863518

Som dette:

if (preg_match('/(?<=net).*(?=\.php)/', $subject, $regs)) {
    $result = $regs[0];
}

Forklaring:

"
(?<=      # Assert that the regex below can be matched, with the match ending at this position (positive lookbehind)
   net       # Match the characters “net” literally
)
.         # Match any single character that is not a line break character
   *         # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
(?=       # Assert that the regex below can be matched, starting at this position (positive lookahead)
   \.        # Match the character “.” literally
   php       # Match the characters “php” literally
)
"
8
0
 morja
morja
29. november 2011 в 4:12
2011-11-29T16:12:36+00:00
Mer
Kilde
Rediger
#14863517

Prøv dette:

preg_match("/net(.*)\.php$/","http://php.net/manual/en/function.preg-match.php", $matches);
echo $matches[1];
// prints /manual/en/function.preg-match
 morja
morja
Redigert svar 29. november 2011 в 4:19
3
0
 Homer6
Homer6
29. november 2011 в 4:14
2011-11-29T16:14:20+00:00
Mer
Kilde
Rediger
#14863519

Med dette generelle URL-søket kan du velge deler av en URL:

if (preg_match('/\\b(?P<protocol>https?|ftp):\/\/(?P<domain>[-A-Z0-9.]+)(?P<file>\/[-A-Z0-9+&@#\/%=~_|!:,.;]*)?(?P<parameters>\\?[-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i', $subject, $regs)) {
    $result = $regs['file'];
    //or you can append the $regs['parameters'] too
} else {
    $result = "";
}
0
0
Legg til spørsmål
Kategorier
Alle
Teknologi
Kultur / Fritid
Liv / Kunst
Vitenskap
Profesjonell
Virksomhet
Brukere
Alle
New
Popular
1
ALEX EPRST
Registered 13 timer siden
2
Daniel Gogov
Registered 1 uke siden
3
工藤 芳則
Registered 2 uker siden
4
Ирина Беляева
Registered 2 uker siden
5
Darya Arsenyeva
Registered 3 uker siden
BG
DA
DE
EL
ES
FI
FR
ID
IT
JA
KO
LT
NL
NO
PT
RO
RU
SK
SL
TR
ZH
© kzen.dev 2023
Kilde
stackoverflow.com
under lisens cc by-sa 3.0 med attribusjon