Toon posts:

[perl regexp] alleen hele woord vervangen.

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb de source van de ali g translator gedownload (java) en ben die bezig om te zetten naar perl voor men msn-bot.

ik gebruik de volgende regexp's:
code:
1
2
$ali =~ s/idiot/chief/i;
$ali =~ s/i/me/i;

maar de uitvoer is dan mediot, en dat moet natuurlijk niet.
welke letter moet je gebruiken om alleen hele woorden te matchen???

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

\b is toch begin van een woord?
dus
s/\bidiot\b/chief/i ?

Verwijderd

Topicstarter
dit vond ik over \b:
A word boundary (\b) is a spot between two characters that has a \w on one side of it and a \W on the other side of it (in either order), counting the imaginary characters off the beginning and end of the string as matching a \W. (Within character classes \b represents backspace rather than a word boundary, just as it normally does in any double-quoted string.)
sorry maar ik vat hier niet zoveel van
ik ga nou eerst effe doesje en dan lekker vroeg slape.
morge oggend probeer ik het wel effe

Verwijderd

Topicstarter
als ik die regexp van ACM gebruik krijg ik 1 terug, dus het aantal keren dat hij is gereplaced... wat kan ik hier aan doen???

edit:

foutje in me sub.
het werkt! bedankt ACM

  • Juup
  • Registratie: Februari 2000
  • Niet online
Of je matcht ' i ' dus met spatier eromheen. Da's ongeveer hetzelfde. Die moet je dan wel vervangen door ' me '.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.