Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #20077 > unrolled thread

cercare spazio in una stringa soluzione piu veloce

Started byalbert <alstopspam@stopaspam.com>
First post2015-11-14 13:50 +0100
Last post2015-11-15 08:54 +0000
Articles 4 — 4 participants

Back to article view | Back to it.comp.www.php


Contents

  cercare spazio in una stringa soluzione piu veloce albert <alstopspam@stopaspam.com> - 2015-11-14 13:50 +0100
    Re: cercare spazio in una stringa soluzione piu veloce Leonardo Serni <lserni@gmail.com> - 2015-11-14 14:47 +0100
    Re: cercare spazio in una stringa soluzione piu veloce fmassei@gmail.com - 2015-11-14 10:28 -0800
    Re: cercare spazio in una stringa soluzione piu veloce Alessandro Pellizzari <shuriken@amiran.it> - 2015-11-15 08:54 +0000

#20077 — cercare spazio in una stringa soluzione piu veloce

Fromalbert <alstopspam@stopaspam.com>
Date2015-11-14 13:50 +0100
Subjectcercare spazio in una stringa soluzione piu veloce
Message-ID<n27alv$i35$1@speranza.aioe.org>
se ho tale stinga
xx/yy/178 234 38
gli spazi sono solo tra i numeri

qual'è il codice piu' veloce per trovare se ,dopo primo numero ho uno 
spazio?

1 cercare lo spazio in tutta la stringa (basta trovarne uno)  ?
2 cercare lo spazio a partire dopo la 2a /   ?


dovrei fare questo
se ho questo
xx/yy/178 234 38    ho 2 spazi spazi: non faccio nulla
xx/yy/200           nessuno spazio: estraggo il  200
xx/yy/200 45       1 spazio:non faccio nulla
xx/yy/             1 spazio: non facio nulla perchè non ho numero

se nelle stringa ho uno spazio non faccio nulla

[toc] | [next] | [standalone]


#20078

FromLeonardo Serni <lserni@gmail.com>
Date2015-11-14 14:47 +0100
Message-ID<5cee4bhsuha5bnsde5verdvrj8ipmnll3d@L.Serni>
In reply to#20077
On Sat, 14 Nov 2015 13:50:16 +0100, albert <alstopspam@stopaspam.com> wrote:

>se ho tale stinga
>xx/yy/178 234 38
>gli spazi sono solo tra i numeri

>qual'è il codice piu' veloce per trovare se ,dopo primo numero ho uno 
>spazio?

Posso dire la mia? Sbagli candeggio. Quante volte devi far girare questo
codice? Un milione, cento milioni, sei miliardi? Ogni quanto tempo? Solo
una volta, o tipo una volta ogni tre mesi? Da dove arriva questo codice,
e quanto è probabile che cambi?

>1 cercare lo spazio in tutta la stringa (basta trovarne uno)  ?
>2 cercare lo spazio a partire dopo la 2a /   ?

>dovrei fare questo
>se ho questo
>xx/yy/178 234 38    ho 2 spazi spazi: non faccio nulla
>xx/yy/200           nessuno spazio: estraggo il  200
>xx/yy/200 45       1 spazio:non faccio nulla
>xx/yy/             1 spazio: non facio nulla perchè non ho numero

Io tenterei

	/*
		Non sto a rifare la generazione ogni volta, però mi salvo
		come l'ho fatta.

	$coso	= '[^/]+';	// Un coso senza sbarre
	$sbarra	= '/';		// La sbarra
	$numero	= '\\d+';	// Un numero
	$stop	= '$';		// Fine stringa

	$cerca	= '#^' . implode('', [
		$coso,
		$sbarra,
		$coso,
		$sbarra,
		"({$numero})",	// Questo lo salvo
		$stop
	]) . '#';

	*/

	$cerca	= '^#[^/]+/[^/]+/([\\d+])$#';

	if (preg_match($cerca, $string, $gregs)) {
		list(, $salvato) = $gregs;
	}

ossia: "Due cosi separati da sbarre, seguiti da un numero e da nient'altro".

Nei cosi ci può essere la qualunque, tranne ovviamente sbarre "/".

Leonardo

-- 

Now suppose -just suppose- I could show you a way to
manufacture a wall that would do the same job... but
was only one inch thick.

[toc] | [prev] | [next] | [standalone]


#20079

Fromfmassei@gmail.com
Date2015-11-14 10:28 -0800
Message-ID<db778614-2333-4f35-8231-c61a5f85da89@googlegroups.com>
In reply to#20077
On Saturday, November 14, 2015 at 1:50:36 PM UTC+1, albert wrote:
> se ho tale stinga
> xx/yy/178 234 38
> gli spazi sono solo tra i numeri
> 
> qual'è il codice piu' veloce per trovare se ,dopo primo numero ho uno 
> spazio?
> 
> 1 cercare lo spazio in tutta la stringa (basta trovarne uno)  ?
> 2 cercare lo spazio a partire dopo la 2a /   ?
> 
> 
> dovrei fare questo
> se ho questo
> xx/yy/178 234 38    ho 2 spazi spazi: non faccio nulla
> xx/yy/200           nessuno spazio: estraggo il  200
> xx/yy/200 45       1 spazio:non faccio nulla
> xx/yy/             1 spazio: non facio nulla perchè non ho numero
> 
> se nelle stringa ho uno spazio non faccio nulla

Per curiosità.. Ma che devi fare? 'sta logica mi sembra un sacco contorta.

Ciao!

[toc] | [prev] | [next] | [standalone]


#20080

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2015-11-15 08:54 +0000
Message-ID<daqvidFjlobU1@mid.individual.net>
In reply to#20077
Il Sat, 14 Nov 2015 13:50:16 +0100, albert ha scritto:

> 1 cercare lo spazio in tutta la stringa (basta trovarne uno)  ?
> 2 cercare lo spazio a partire dopo la 2a /   ?

Se ti basta trovare uno spazio, strpos è il metodo più veloce.

Mi pare di capire che hai solo numeri, barre e spazi, quindi vai 
tranquillo. Se hai anche caratteri in UTF-8 devi usare mb_strpos che è un 
po' più lento.

Bye.

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.www.php


csiph-web