[php] 10de omzetten

Pagina: 1
Acties:

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Ik heb de volgende regex gemaakt om bijvoorbeeld 10de om te zetten in 10<sup>de</sup>. Wanneer ik nu 1.000ste ingeef doet hij dat ook goed. Waar wanneer ik nu .de ingeef doet hij het ook, maar nu mag het juist niet. Komt doordat ik \., er ook bij heb staan. Hoe zorg ik ervoor dat wanneer ik 1.000ste ingeef wel wordt omgezet en wanneer .de dan niet.
PHP:
1
<?$artikel = preg_replace ('/\b([0-9\.,]{1,})(ste|de|st|th|nd|e)\b/i',"\\1<sup>\\2</sup>", $artikel);?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Aparte groep voor je [0-9.] maken, iets als:
(([0-9]{1-3}\.)*[0-9]{1-3})(ste|de|st|th|nd|e)

Neem het niet klakkeloos over ajb, maar kijk eerst goed of het doet wat je wil ;)

Verwijderd

{1,} is trouwens precies hetzelfde als +
(voor de volledigheid)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Op dinsdag 23 april 2002 18:11 schreef ACM het volgende:
Aparte groep voor je [0-9.] maken, iets als:
(([0-9]{1-3}\.)*[0-9]{1-3})(ste|de|st|th|nd|e)

Neem het niet klakkeloos over ajb, maar kijk eerst goed of het doet wat je wil ;)
wat nu te doen bij 1.000.000ste ?
Dan werkt dat niet.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op dinsdag 23 april 2002 23:36 schreef frankschers het volgende:
wat nu te doen bij 1.000.000ste ?
Dan werkt dat niet.
Zou moeten werken, maar zoals ik zei, het is niet gegarandeerd precies goed.

Heb je het getest of alleen geinterpoleerd?
[edit]
Waarschijnlijk kloppen je backreferences niet met mijn ding ;) )
[edit2]
Het is natuurlijk {1,3} en niet {1-3} :)

[edit3]
Nou, ajb...
PHP:
1
<?preg_replace('/(\b)((?:[0-9]{1,3}\.)*[0-9]{1,3})(ste|de|st|th|nd|e)(\b)/i', '\1\2<sup>\3</sup>\4', $artikel);?>

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Thnx man. Echt bedankt.

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Ik typ nu www.2de.nl
dan wordt de ook veranderd in <sup>de</sup>
dus het adres wordt dan www.2<sup>de</sup>.nl
Die bestaat dan niet.

Ik wil dat wanneer het een link wordt geen mogelijkheid is dit te vervangen. Heb je daar misschien ook nog een regex voor? Ben zelf nogal slecht in regex.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
Op woensdag 24 april 2002 16:11 schreef frankschers het volgende:
Ik wil dat wanneer het een link wordt geen mogelijkheid is dit te vervangen. Heb je daar misschien ook nog een regex voor? Ben zelf nogal slecht in regex.
Je geeft ze één vinger... :(

[topic=392390/1/25]

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Op woensdag 24 april 2002 16:16 schreef Soultaker het volgende:

[..]

Je geeft ze één vinger... :(

[topic=392390/1/25]
Sorry, zal het niet meer doen!!!

Verwijderd

Op woensdag 24 april 2002 16:11 schreef frankschers het volgende:
Ik typ nu www.2de.nl
dan wordt de ook veranderd in <sup>de</sup>
dus het adres wordt dan www.2<sup>de</sup>.nl
Die bestaat dan niet.

Ik wil dat wanneer het een link wordt geen mogelijkheid is dit te vervangen. Heb je daar misschien ook nog een regex voor? Ben zelf nogal slecht in regex.
Kwestie van kijken of het een link is; zo ja, vlaggetje zetten zodat ie de andere regexen niet meer doet.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 24 april 2002 16:11 schreef frankschers het volgende:
Ik wil dat wanneer het een link wordt geen mogelijkheid is dit te vervangen. Heb je daar misschien ook nog een regex voor? Ben zelf nogal slecht in regex.
De voorste \b weghalen en vervangen door \s ? :)
Dan moet er altijd een spatie/tab/enter voor staan... (een . valt ook binnen \b)

En anders moet je er even naar kijken hoe-en-wat je precies wilt en de boel daarop aanpassen ;)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Op woensdag 24 april 2002 16:33 schreef ACM het volgende:

[..]

De voorste \b weghalen en vervangen door \s ? :)
Dan moet er altijd een spatie/tab/enter voor staan... (een . valt ook binnen \b)

En anders moet je er even naar kijken hoe-en-wat je precies wilt en de boel daarop aanpassen ;)
Weet je misschien een goed boek over Regular Expressions. Ik wil dat wel eens beter leren.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
Een boek kan ik niet noemen, maar in de FAQ staan een aantal links waarmee je de dag wel door zou moeten kunnen komen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 24 april 2002 16:38 schreef frankschers het volgende:
Weet je misschien een goed boek over Regular Expressions. Ik wil dat wel eens beter leren.
Mastering regular expressions uitgegeven door o'reilly... Wel behoorlijk duur :)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Op woensdag 24 april 2002 17:08 schreef ACM het volgende:

[..]

Mastering regular expressions uitgegeven door o'reilly... Wel behoorlijk duur :)
Thnx zijn er ook nederlands talige boeken over? Heb bij Bol.com niets kunnen vinden. Ook heb ik op de site van academic sevice gekeken. Deze vertalen meestal de boeken van O'reilly.

  • Grum
  • Registratie: Juni 2001
  • Niet online
Een engels woordenboek zou geen gekke investering zijn ;)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 08-09 22:13
Op woensdag 24 april 2002 17:56 schreef Grum het volgende:
Een engels woordenboek zou geen gekke investering zijn ;)
:o daar hoef ik nix meer in te investeren, hebben we dacht ik een in de boekenkast staan. |:(
Pagina: 1