Toon posts:

[RegExp] tekst tussen vierkante haken verwijderen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Uit een bepaalde string wil ik alle tekst tussen vierkante haken weghalen. Dus:
'bla bla [hoi] bla bla [nog meer bla]'
moet 'bla bla bla bla ' worden. Enig idee hoe dit aan te pakken?

De volgende regexp: /\\[([a-z]+)\]/g werkt wel, maar niet als er spaties in staan.
/\\[*.\]/g werkt niet. Ik ben erg slecht met regexp's, dus meer kwam er ook niet uit...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Het is .*, niet *. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Aaah dank je wel. Werkte bijna ;). Moest alleen nog een vraagteken bij om de tekst tussen verschillende 'tags' niet weg te halen:
/\\[.*?\]/g

Voor de liefhebber dus. Die vraagteken kwam overigens als suggestie van een collega ;).

[ Voor 19% gewijzigd door Verwijderd op 26-05-2006 16:31 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Dat vraagteken maakt hem non-greedy. Dit heeft hetzelfde effect:
/\\[[^\]]*\]/g

Veel leesbaarder wordt het er niet op trouwens. :+

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

dat maakt 'm inderdaad ungreedy.
alternatief is dit:
code:
1
/\\[[^\]]*\]/g

Voordeel van bovenstaande is dat newlines ook gematched worden - niet alle talen hebben daarvoor een modifier (de global-modifier hier doet vermoeden dat het om javascript of perl gaat)

edit: spuit-11

[ Voor 21% gewijzigd door crisp op 26-05-2006 16:39 ]

Intentionally left blank