![]() |
Hur gör jag om jag vill ta bort all text efter eller före ett visst tecken eller ett visst ord med ett reguljärt uttryck i php?
|
Det är nog bäst att du lär dig lite om reguljära uttryck istället för att fråga varje gång du behöver ett. Sök på google…
preg_match() och preg_replace() osv. är funktionerna du använder i php. |
Citat:
Att jag skrev "...ett reguljärt uttryck i php" var för att visa att jag som lösning kan acceptera både POSIX-extended och Perl-kompatibla uttryck. Det finns ju lite olika "flavors" när det gäller reguljära uttryck och dessa båda funkar ju i PHP. Har läst ett flertal guider och tutorials men aldrig sett det som jag frågar efter här i något exempel. Någon annan därute som har gjort något liknande? Jag antar att man skall använda sig av "$" för att matcha slutet av strängen, men skall man sätta parentes runt allt man skall matcha med "$"? Måste man matcha newlines i sitt uttryck om det finns ett sådant i slutet av strängen? |
Ursäkta om du tog illa upp. Din fråga var kort och ospecifik och jag antog att du inte hade någon aning alls och då är det bästa att söka och försöka lite själv. Skriv ett lite mer specifikt inlägg nästa gång (så man vet om du inte vet vilken funktion du ska använda i php, vilket motor du helst ska använda, vilket uttryck som är bäst, osv.) - du skrev en rad som fråga men svarade på mitt inlägg med åtta…
preg_replace('/(Äpple).*$/ui',"$1",$str); borde ju lösa det hela (klippa av slutet, vänd på uttrycket för klippa av början) Undrar om det inte borde finnas något effektivare sätt än regexp:ar för att lösa just detta problem (kommer dock inte på någon smidig funktion just nu). Citat:
|
point taken, tack för hjälpen!
|
En snabbare och enklare lösning (om du inte behöver mer funktionalitet än att bara matcha en sträng) är strstr http://se2.php.net/manual/en/function.strstr.php
Det kanske går ännu snabbare att använda strpos och substr. |
Kan för övrigt påpeka att det kan vara praktiskt att göra just det andi frågar efter:
Kod:
if(preg_match('/^([a-z0-9-])\.jpe?g$/ui',$filnamn,$m)) { |
Jo, det är sant att det skulle gå att använda rena stränghanteringsfunktioner, nu är jag dock låst till just reguljära uttryck av lite olika anledningar.
|
Alla tider är GMT +2. Klockan är nu 20:41. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson