Kom ihåg mig?
Home Menu

Menu


reguljärt uttryck

Ämnesverktyg Visningsalternativ
Oläst 2008-04-01, 15:29 #1
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
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?
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 16:22 #2
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
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.
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 17:34 #3
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Citat:
Originally posted by martine@Apr 1 2008, 16:22
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.
Men snälla nån, hur vet du att jag frågar någon varje gång jag skall använda ett reguljärt uttryck? Vill du inte föra diskussionen framåt är det bara att skita i och svara istället för att haspla ur sig spydigheter.

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?
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 21:17 #4
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
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:
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?
Man använder sig alltså av $ precis som du noterat. $ motsvarar antingen "newline" (med //m) eller slutet av strängen. Man behöver alltså inte matcha newline i sig utan kan använda bara $. Det du behöver senare sätter du i parantes, allt annat lämnar du därhän.
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 21:28 #5
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
point taken, tack för hjälpen!
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 21:45 #6
MMCs avatar
MMC MMC är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2008
Inlägg: 560
MMC MMC är inte uppkopplad
Mycket flitig postare
MMCs avatar
 
Reg.datum: Jan 2008
Inlägg: 560
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.
MMC är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 21:58 #7
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
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)) {
 echo 'Filnamnet är '.$m[1];
}
Om det är ett filnamn utan åäö och mellanslag med filändelse jpg eller jpeg (stora eller små bokstäver) så skriv ut (eller gör något nyttigare) med basnamnet.
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 22:09 #8
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
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.
andi är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017