Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-09-2011, 14:38   #1
grigor91
Senior Member
 
L'Avatar di grigor91
 
Iscritto dal: Dec 2007
Città: brianza
Messaggi: 717
[PHP] Espressioni regolari problema ricorrenze esatte

Eseguendo questo codice:
Codice PHP:
<?php
echo preg_match('/b?/''abcbbc');
echo 
'<br/>';
echo 
preg_match('/b{1}/''abcbbc');
?>
ottengo:
Codice:
1
1
Anche se il carattere 'b' è presente più di 1 volta. Come mai?
__________________
AMD Ryzen 9700X MSI RX 480 Gaming X 8G ASRock B850 Pro-A Windows 11 Pro RAM DDR5 16GBx2 TEAMGROUP T-Create Expert 6000 MHz CL30 SSD Crucial T500 4TB case Corsair Carbide 200R
grigor91 è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2011, 17:36   #2
les2
Senior Member
 
L'Avatar di les2
 
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
direttamente dalla documentazione ufficiale, che non hai letto :P

Quote:
preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject. preg_match() returns FALSE if an error occurred.

restituisce true o false (0,1) e si ferma,
devi usare preg_match_all() perchè continui
les2 è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2011, 09:02   #3
grigor91
Senior Member
 
L'Avatar di grigor91
 
Iscritto dal: Dec 2007
Città: brianza
Messaggi: 717
Il fatto è che il pattern dovrebbe trovare riscontro se la b è presente una e una sola volta, quindi dovrebbe ritornare 0, non 1.

PS: la documentazione ufficiale l'ho letta parecchie volte
__________________
AMD Ryzen 9700X MSI RX 480 Gaming X 8G ASRock B850 Pro-A Windows 11 Pro RAM DDR5 16GBx2 TEAMGROUP T-Create Expert 6000 MHz CL30 SSD Crucial T500 4TB case Corsair Carbide 200R
grigor91 è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2011, 18:54   #4
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Quote:
Originariamente inviato da grigor91 Guarda i messaggi
Il fatto è che il pattern dovrebbe trovare riscontro se la b è presente una e una sola volta, quindi dovrebbe ritornare 0, non 1.

PS: la documentazione ufficiale l'ho letta parecchie volte
Direi che hai due approcci possibili. O fai

Codice PHP:
countpreg_match_all('/b/') ) == 
Che ti ritorna true se c'è una sola b in tutta la stringa o 0 se non ce ne è neanche una o più di 1.

oppure fai

Codice PHP:
preg_match_all('/b.*b/'
che matcha se c'è più di una b. Ma se devi controllare se c'è una sola ripetizione di una stringa in un altra fai prima a fare

Codice PHP:
substr_count("b""aasdbasdb") == 
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2011, 09:34   #5
grigor91
Senior Member
 
L'Avatar di grigor91
 
Iscritto dal: Dec 2007
Città: brianza
Messaggi: 717
Però in un caso più complesso come la validazione di un indirizzo e-mail questi aprocci sono difficilmente realizzabili.
Per esempio in questo caso:
Codice PHP:
preg_match('/[A-Za-z0-9_][A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.{1}[A-Za-z]{2,4}/''prova.test@esempio..it'); 
la funzione ritorna 1 nonostante non sia un indirizzo valido.

Anche leggendo la documentazione di PHP si nota come il quantificatore '{n}' risulti verificato solo se le occorrenze sono esattamente n:

"Thus [aeiou]{3,} matches at least 3 successive vowels, but may match many more, while \d{8} matches exactly 8 digits."
__________________
AMD Ryzen 9700X MSI RX 480 Gaming X 8G ASRock B850 Pro-A Windows 11 Pro RAM DDR5 16GBx2 TEAMGROUP T-Create Expert 6000 MHz CL30 SSD Crucial T500 4TB case Corsair Carbide 200R
grigor91 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Gli smartphone premium sono sempre pi&ug...
Fusione nucleare, l'Italia entra in gioc...
AMD protagonista al CES 2026: il keynote...
Invia il tuo nome intorno alla Luna con ...
Apple presenta i nuovi iPhone 17 Pro e P...
Apple presenta iPhone 17: fotocamera Cen...
Apple annuncia l''impossibilmente sottil...
Apple Watch Series 11 ufficiale: il più ...
Apple svela Watch Ultra 3 e Watch SE 3: ...
AirPods Pro 3 ufficiali: cancellazione d...
Kia EV3 è una Xbox 'che fa brum':...
Nel 2026 cambiano le regole della F1. Me...
Concept THREE: al salone di Monaco Hyund...
Broadcom in tribunale per VMware: dopo u...
Microsoft integra l'intelligenza artific...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v