|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2000
Città: Grugliasco, Torino
Messaggi: 175
|
[REGEX]Matchare parole solo se non sono dentro a un tag html
Salve
Ho una regular expression che matcha parole singole in un testo, così: "/(\bparola\b)/" Ora però devo modificarla: mi serve che se "parola" è all'interno di un tag html non venga matchata: per esempio, se il testo è Codice:
<img src="parola.jpg" /> Come posso fare? Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Secondo me fai prima con le funzioni del DOM prendendo tutti i nodi senza tag
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Il php ha delle estensioni per il dom, se hai il php5 dovrebbe essere integrata l'estensione dom, altrimenti cerca l'estensione domxml. Se non puoi installare estensioni, cerca un parser xml o html..
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Sep 2007
Messaggi: 207
|
non so esattamente l'algoritmo che vuoi applicare
cmq credo che questo formato : <(.*?)parola(.*?)> si adatti ad un tag con la parola : parola al suo interno se invece volessi negare parola credo sia questo : <(.*?)^[parola](.*?)> dove il simbolo ^ afferma il fatto che non debba esserci la parola all'interno delle quadre,se fosse stato messo [^parola] si sarebbe riferito ai caratteri p a r o l a (chiedo a chi e' piu competente di correggermi se dovessi dire qualche idiozia ihih) una buona guda sulle regular expression la trovi nel sito http://it2.php.net/manual/it/referen...ern.syntax.php nell'esempio precedente il primo (.*?) rappresenterebbe img src=" mentre il secondo " /> cosi facendo pero non ti assicura un tag ben formato spero di esserti stato di aiuto :P Ultima modifica di m.distrutti : 13-03-2008 alle 14:48. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
<(.*?)^[parola](.*?)>
Non funzionerebbe. Primo perchè cercherebbe un carattere solo tra p,a,r,o,l,a. Secondo perchè ^ funziona o all'inizio dell'espressione regolare, o dentro una classe di caratteri (dentro []). |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Potresti anche usare strip_tags, quindi usare le espressioni regolari.
|
|
|
|
|
|
#8 | |
|
Member
Iscritto dal: Sep 2007
Messaggi: 207
|
da php.net
Quote:
cmq adesso provo in java le regex Ultima modifica di m.distrutti : 15-03-2008 alle 09:31. |
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Sep 2007
Messaggi: 207
|
nu vabbe stava venendo una cosa troppo contorta con le regex mo non ho tempo per sbattere la testa pure su sta cosa >_>, in effetti hai ragione non e' la strada piu elegante mi sa
cmq si me le sono ripassate prima e ho fatto una gaf XD |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Una Regex per detaggare, la tua a seguire per cercare.
Questa dovrebbe detaggare Quote:
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:27.




















