Regex voor match rondom dash of underscore, tot en met space

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • NeFoRcE
  • Registratie: Mei 2004
  • Laatst online: 09-10 14:43

NeFoRcE

Hallo? Bent u daar?

Topicstarter
Dag allen,

Ik zit al met een regexbuilder te prutten, maar ik kom er niet uit. Ook Google levert me niet het gewenste resultaat.

Ik wil graag (PHP), het volgende uit de string hebben:

"bla die bla 23-47 bla di bla 564 3"

23-47

de - kan ook een _ zijn, of een /.

Dus eigenlijk alles negeren, behalve de waarden rondom de dash,slash of underscore.

Dank alvast!

Professioneel Heftruck Syndroom

Beste antwoord (via NeFoRcE op 12-08-2016 12:15)


  • expor
  • Registratie: Juni 2005
  • Laatst online: 01-10 22:53
Ik ben geen regex held maar [0-9]+[-_/][0-9]+ is dan voldoende? Je geeft maar 1 voorbeeld dus afhankelijk van je input kan hij anders moeten.

Edit: Overigens heeft Creepy gelijk, ik liet me te makkelijk overhalen om zelf te gaan spelen, maar je had op zijn minst de expressies kunnen geven die je zelf al had geprobeerd.

[ Voor 39% gewijzigd door expor op 12-08-2016 12:12 ]

AMD 5800X3D | 16gb DDR 4 @ 3800/14 | 4070 Ti | 1TB Samsung Evo 970, 1TB Samsung Evo 860, 512MB Crucial

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • expor
  • Registratie: Juni 2005
  • Laatst online: 01-10 22:53
Ik ben geen regex held maar [0-9]+[-_/][0-9]+ is dan voldoende? Je geeft maar 1 voorbeeld dus afhankelijk van je input kan hij anders moeten.

Edit: Overigens heeft Creepy gelijk, ik liet me te makkelijk overhalen om zelf te gaan spelen, maar je had op zijn minst de expressies kunnen geven die je zelf al had geprobeerd.

[ Voor 39% gewijzigd door expor op 12-08-2016 12:12 ]

AMD 5800X3D | 16gb DDR 4 @ 3800/14 | 4070 Ti | 1TB Samsung Evo 970, 1TB Samsung Evo 860, 512MB Crucial


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 14:13

Creepy

Tactical Espionage Splatterer

Maar welke zaken heb je dan zelf al geprobeerd? We kunnen je wel de regexp geven, maar dat is eigenlijk niet de bedoeling..

En zonder regexp ljikt me dit ook prima te doen. Split de string op een spatie en zoek dan naar alle delen waarin een -, _ of / staat?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • NeFoRcE
  • Registratie: Mei 2004
  • Laatst online: 09-10 14:43

NeFoRcE

Hallo? Bent u daar?

Topicstarter
expor schreef op vrijdag 12 augustus 2016 @ 12:08:
Ik ben geen regex held maar [0-9]+[-_/][0-9]+ is dan voldoende? Je geeft maar 1 voorbeeld dus afhankelijk van je input kan hij anders moeten.

Edit: Overigens heeft Creepy gelijk, ik liet me te makkelijk overhalen om zelf te gaan spelen, maar je had op zijn minst de expressies kunnen geven die je zelf al had geprobeerd.
Dank! Het is soms zo simpel, ik zat veel te moeilijk te denken.

Uiteindelijk dit gebruikt (er konden namelijk nog a-Z karakters in voorkomen rondom de dash):

[a-zA-Z0-9]+[-_\/][a-zA-Z0-9]+

Ik zat met allerlei () constructies te stoeien. Tijd voor lunch denk ik maar :)

Het is gelukt in ieder geval, dank!

[ Voor 4% gewijzigd door NeFoRcE op 12-08-2016 12:16 ]

Professioneel Heftruck Syndroom


Acties:
  • +1 Henk 'm!

  • NNF
  • Registratie: November 2003
  • Laatst online: 29-11-2024

NNF

In plaats van [a-zA-Z0-9] kun je ook \w gebruiken :)

\w+[-_\/]\w+