Toon posts:

Woord inlezen zonder de zin weer te geven

Pagina: 1
Acties:
  • 49 views sinds 30-01-2008

Verwijderd

Topicstarter
Goedenavond/morgen,

Ik ben opzoek naar een functie waar uit een zin, een woord wordt uitgehaald zonder dat de hele zin als nog weergegeven wordt.

Dit is de zin:

$zin = 'Goedenavond het nieuwjaar was leuk';

En ik wil bijvoorbeeld "nieuwjaar" alleen in lezen.


Kan iemand mij verder helpen?

Alvast bedankt. :)

Maxxiester.

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 25-11 10:32

Stoffel

Engineering the impossible

En in welke taal wil je dat? PHP zo te zien? Op basis van wat wil je bepalen welk woord je uit die zin wil halen? Zoek in ieder geval maar eens op regular expressions.

Verwijderd

Topicstarter
Sorry voor het niet melden in welke taal ik zit te programeren. (PHP)

Het is gewoon de bedoeling dat nieuwjaar uit de zin wordt gehaald.

Ik heb al een aantal functies geprobeerd, maar deze zijn bijvoorbeeld om nieuwjaar vet te maken, maar dan wordt ook de hele zin ingelezen.

  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 25-11 10:32

Stoffel

Engineering the impossible

Wat heb je geprobeerd dan? Want ik snap zelfs conceptueel niet wat je wil bereiken. Je leest de string in en dan wil je als resultaat altijd "nieuwjaar" in een variabele zetten? Want dan kun je je de moeite besparen.

Of wil je dat iemand een hele zin als string invoert, waarna je daar één woord uithaalt en de rest negeert? In dat geval, is dat woord altijd "nieuwjaar"? Waarschijnlijk niet, staat het dan altijd op dezelfde plek? Een string is een array van karakters, dus dan kun je gewoon vanaf die positie gaan knippen.
RocketKoen schreef op dinsdag 02 januari 2007 @ 01:15:
als je altijd het woord moet hebben dat na een ander woord komt, dan laat je de for loop zoeken naar de volgorde van de characters uit dat woord, en dan alles copieren dat na dat woord en voor de volgende spatie komt bvb.
Dat doen we dan met regular expressions ;)

[ Voor 26% gewijzigd door Stoffel op 02-01-2007 01:21 ]


  • RocketKoen
  • Registratie: December 2001
  • Laatst online: 01-12 19:19
wat stoffel zegt.
maak iets van een for loop die alle characters uit de string nagaat. (in java is dit charAt(int), ken geen php)
als het bvb altijd het 2e woord is, dan copier je de characters tussen de 1e en 2e spatie naar een nieuwe string.
als je altijd het woord moet hebben dat na een ander woord komt, dan laat je de for loop zoeken naar de volgorde van de characters uit dat woord, en dan alles copieren dat na dat woord en voor de volgende spatie komt bvb.

[ Voor 4% gewijzigd door RocketKoen op 02-01-2007 01:16 ]

TheS4ndm4n#1919


Verwijderd

Topicstarter
De waarde die ik moet hebben staat tussen een zin.

Bijv.

Hoi, vandaag is het 5 graden.

Het vetgedrukte moet ik er dus uithalen, en staat altijd op de zelfde plaats.

Ik ga ondertussen zoeken op PHP.net of ik iets meer kan vinden over die functie.

Mocht iemand nog tips of deze functie klaar hebben liggen...

Alvast bedankt,

Maxxiester. :)

  • Gromba
  • Registratie: Mei 2003
  • Laatst online: 03-11 22:49

Gromba

Tijdreiziger @ 1sec/sec

Simpele poging:
PHP:
1
2
3
4
5
<?php
$string = 'Hoi, vandaag is het 5 graden.';
$split = split(" ",$string);
echo $split[4]
?>

Gromba.nl


Verwijderd

Topicstarter
Bedankt Gromba,

Deze functie werkt zoals ik al gedacht had. :)

Maar ik bedenk mij namelijk net iets..

Het woord staat namelijk niet altijd op de zelfde plaats.
Het staat namelijk tussen <span> tags.

Om precies te zijn: <span class="n">waarde</span>

Is het niet mogelijk om gewoon tussen <span class="n"> </span> tags te rippen?

Sorry, maar zou iemand mij nog even willen verder helpen. :'(

[ Voor 74% gewijzigd door Verwijderd op 02-01-2007 01:44 ]


  • Stoffel
  • Registratie: Mei 2001
  • Laatst online: 25-11 10:32

Stoffel

Engineering the impossible

preg_match

Je zal dus een pattern op moeten stellen om te zoeken naar <span class="n">(string)</span>. Wat op deze pagina staat kun je bijna zo overnemen, ik ga het niet voor je maken :)

Verwijderd

Topicstarter
Bedankt voor je link, met deze codes was ik al bezig iets van te maken.

En hier eindig mijn vragen,

Bedankt allemaal voor jullie hulp. :)

Verwijderd

Topicstarter
Nu heb ik deze code gemaakt alleen is het probleem dat de tekst meerdere <span class="n">woord</span> tags heeft.

Het probleem is dus dat hij er maar een leest. (eerste)

code:
1
2
3
4
5
6
<?php
$content = '<span class="n">woord1</span><span class="b">ander woord1</span><span class="n">woord2</span><span class="c">ander woord2</span><span class="n">woord3</span>'; // bijvoorbeeld.

if(preg_match('#<span class="n">.*</span>#', $content, $array))
print $array[0];
?>


Weet iemand een oplossing, want ik heb alles geprobeerd mer ik kom er niet uit.

Alvast bedankt,

Maxxiester.

[ Voor 20% gewijzigd door Verwijderd op 03-01-2007 15:05 ]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 01-12 20:19

Gerco

Professional Newbie

preg_match_all. Als je op php.net iets naar links had gekeken, stond hij direct boven de functie preg_match. Als je alleen <spans wilt vervangen met een bepaald woord erin, zul je de regular expression moeten aanpassen. Als er meerdere voorkomen in de string, moet je preg_match_all gebruiken.

[ Voor 49% gewijzigd door Gerco op 03-01-2007 15:08 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 10:33
Ja dat is natuurlijk logisch. Je moet die <span> iets unieks meegeven om ervoor te zorgen dat het leesbaar is door de computer. Als je dat nog niet begrijpt dan raad ik je aan de basics van programmeren te leren door middel van een boek. Deze informatie is overigens ook op internet te vinden. Sowieso lijkt het me handig dat jij je verdiept in de basics van programmeren, gezien de vragen die je hier hebt gesteld.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Sorry, maar dit is echt wel te vinden met wat eigen inzet; iets wat ik nogal mis in dit topic. Meteen een van de eerste replies noemde al regular expressions, en met behulp van Google en de GoT-search kom je dan legio oplossingen tegen voor je probleem. Bovendien is het ook nog een vrij eenvoudige regexp. :)

Volgende keer zou ik graag zien dat je iets meer probeert zelf te zoeken en op te lossen voor je hier een vraag stelt. :)

'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.

Pagina: 1

Dit topic is gesloten.