Gambas-it

Gambas3 => Programmazione => Topic aperto da: faustf - 06 Gennaio 2018, 17:38:42

Titolo: [RISOLTO]regexp in gambas questo sconosciuto
Inserito da: faustf - 06 Gennaio 2018, 17:38:42
Ciao a tutti stavo guardando come fre le regexp in gambas , ma devo dire che dall esempio wiki non cio capito un granche 
cè qualcuno che mi può fare un esempio semplice 
partendo dal fatto che ho dentro una variablie  un testo   e voglo prendere  alcune parti di esso ??
grazie a tutti
va benissimo anche se mi dae dei link in italiano magari dove cè spiegato 
grazie ancora
 :) :) :)
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: Gianluigi - 06 Gennaio 2018, 18:30:05
Non capisco cosa vuoi sapere esattamente, se digiti espressioni regolari in google ottieni un sacco di informazioni e poi per usarle con Gambas puoi farlo con Like  :-\

P.S. Sarebbe bene che tu rispondessi anche alle domande che vengono fatte a te e non solo aspettare delle risposte e basta.
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: faustf - 06 Gennaio 2018, 18:47:41
ciao  intanto scusami se non avevo risposto , è solo che   non  avevo refresshato la pagina probabilmente e non avevo visto le risposte , di solito non sono cosi marrano :D
cosè un espressione regolare  lo so + o -  quello che mi serviva di sapere è  come s  fa  in gambas
esempio io ho una variabile  con dentro   ciao  super clifragi listi 192.168.1.19 bla bla   vorrei    cercare dentro  e ritornare l indirizzo  e  ciao super
come è possibile farlo ???
grazie
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: Gianluigi - 06 Gennaio 2018, 19:45:04
Mi riferivo non alla mia domanda ma ... ho visto che hai inteso.

Riguardo Like eccone un suo possibile uso:
Codice: [Seleziona]
Public Sub Main()

  Dim s As String = "Scrivo una frase qualunque all'interno della quale devo trovare un riscontro"
  Dim ss As String[]
 
  ss = Split(s, " ")
  For Each s In ss
    If s Like "qual*" Then Print s
  Next

End

Però dovresti essere un tantino più intraprendente perchè di esempi nel forum e dintorni ve ne sono a iosa
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: faustf - 06 Gennaio 2018, 19:57:29
grazie infinite per l esempio , pensa che  avevo visto like e  creedevo ritornasse solo il true o il false , pensa some sono messo :D
grazie ancora  ora provo a capirci qualcosa e poi magari mi rifaccio vivo  :)
thankz
 
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: faustf - 06 Gennaio 2018, 20:14:59
cioè paticamente  al like  gli do in pasto la regular expression che nel tuo caso è "qual*"   ???  ho capito bene ??
 
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: Gianluigi - 06 Gennaio 2018, 20:18:42
grazie infinite per l esempio , pensa che  avevo visto like e  creedevo ritornasse solo il true o il false , pensa some sono messo :D

Infatti,  restituisce proprio True se trova riscontro nell'espressione e viceversa, di seguito il codice precedente commentato:
Codice: [Seleziona]
Public Sub Main()
  ' Passo alla variabile s una stringa mentre la presento a Gambas.
  Dim s As String = "Scrivo una frase qualunque all'interno della quale devo trovare un riscontro"
  Dim ss As String[] ' vettore dinamico di tipo stringa che userò per incamerare i valori dati da Split
 
  ss = Split(s, " ") ' Separo la stringa in tante stringhe usando come separatore lo spazio fra una parola e l'altra.
  For Each s In ss ' Ciclo le parole una alla volta confrontandole con l'espressione qual* che significa "qual" seguito
                   ' da un qualunque numero si caratteri (anche nessuno).
    If s Like "qual*" Then Print s ' Se Like trova riscontro (true) stampo la parola in s che in quanto "variabile" assume il valore di una parola (alla volta).
  Next

End
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: Gianluigi - 06 Gennaio 2018, 20:30:05
cioè paticamente  al like  gli do in pasto la regular expression che nel tuo caso è "qual*"   ???  ho capito bene ??

Non propriamente, per le espressioni regolari complesse c'è il componente gb.pcre (http://gambaswiki.org/wiki/comp/gb.pcre) clicca su RegExp (http://gambaswiki.org/wiki/comp/gb.pcre/regexp) ecc. e studia  ;D
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: faustf - 06 Gennaio 2018, 21:52:11
infatti mi ero inbattuto in quello ,  e infatti  un c  capivo nulla nell esempio , devo  dire  che gambas la fa davvero complicata la regexp rispetto a  autoit (quello che uso di solito su windows ) ma  anche al perl ,  infatti se hai degli esempi , anche link a degli esempi dell uso del componente gb.pcre RegExp
te ne sarò infinitamente grato , io non sono ruscito a trovare  solo quello del manuale  e cio capito pooo
:D
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: Gianluigi - 06 Gennaio 2018, 23:32:34
Guarda che per lo studio della programmazione ci vuole molta pazienza e la costanza di provare e riprovare perché solo sbagliando si impara.
Comunque gli esempi della guida sono validi ce n'è uno semplice ed uno complesso giusto per instradarci.

Il primo, quello semplice, va scritto così:

Codice: [Seleziona]
Public Sub Main()

  Dim re As Regexp
 
  re = New Regexp("La veloce volpe bruna salta oltre il cane pigro", "bruna (\\S+)")
  Print "L'espressione regolare zero da come risultato: "; re[0].Text
  Print "L'espressione regolare uno da come risultato: "; re[1].Text

End

Mentre l'altro:

Codice: [Seleziona]
Public Sub Main()

  Dim sDiskIO, sVal As String
  Dim cVal As New Collection
  Dim rMatch As New RegExp

  ' get disk I/O stats
  Exec ["vmstat", "-D"] To sDiskIO
  For Each sVal In ["total reads", "read sectors", "writes", "written sectors"]
    rMatch.Compile("^\\s*(\\d+)\\s+" & sVal, RegExp.MultiLine)
    rMatch.Exec(sDiskIO)
    If rMatch.Count = 1 Then
      cVal[Replace(sVal, " ", "_")] = rMatch[1].Text
    Else
      Error.Raise("Missing '" & sVal & "' in 'vmstat -D' output")
    Endif
  Next
  Print "total reads: " & cVal!total_reads & " read sectors:" & cVal!read_sectors
  Print "writes: " & cVal!writes & " written sectors: " & cVal!written_sectors

End

Ma è tardissimo, corro a dormire...
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: faustf - 07 Gennaio 2018, 00:02:14
grazie ancora farò tesoro delle tue parole :)
per l esempio difficile que sVal  ma da dove lo trova????
grazie  ancora ciao e  bona notte
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: vuott - 07 Gennaio 2018, 00:28:43
sVal  ma da dove lo trova????

Cosa intendi dire più precisamente ?
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: Gianluigi - 07 Gennaio 2018, 09:23:52
Cosa intendi dire più precisamente ?

Dire che condivido la domanda di vuott o per meglio dire la perplessità è dire poco.
Ma che razza di domanda è? Ti ho appena esortato a studiare e provare e tu esci con questa domanda sciocca?

Guarda che qui siamo all'ABC di Gambas, ognuno è padrone di studiare un linguaggio partendo da dove crede opportuno e se uno è particolarmente ferrato nelle espressioni regolari... certo è che non hai scelto un argomento facile.

A parte che ti ho già mostrato prima come funziona un ciclo FOR EACH perché non provi a cambiarlo così e cerchi di imparare e soprattutto capire le basi di Gambas?

Codice: [Seleziona]
Public Sub Main()
 
  Dim sVal As String
 
  For Each sVal In ["Paperino", "Qui", "Quo", "Qua"]
    Print sVal
  Next
 
End
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: faustf - 07 Gennaio 2018, 12:57:19
scusatemi ancora non volevo certo farvi innervosire , grazie  del supporto , studiero l esempio
grazie  ancora
ciao
Titolo: Re:[RISOLTO]regexp in gambas questo sconosciuto
Inserito da: Gianluigi - 07 Gennaio 2018, 13:18:57
Guarda non credo che vuott si sia innervosito e neanche io, si tratta semplicemente di una simbolica tirata di orecchie che ti vuole invitare a ponderare bene quello che chiedi.
Ribadisco che la cosa ti era stata appena spiegata solo che tu non hai prestato orecchio, appunto.
Ringrazi ma poi non leggi con attenzione, tranquillo a volte succede anche ai migliori e occorre pagarne dazio  ;D

Comunque quando non si capisce è giusto chiedere, solo che prima occorre cercare di arrivarci da soli... tutto qui.
Titolo: Re:regexp in gambas questo sconosciuto
Inserito da: vuott - 07 Gennaio 2018, 16:43:52
Codice: [Seleziona]
Public Sub Main()
 
  Dim sVal As String
 
  For Each sVal In ["Paperino", "Qui", "Quo", "Qua"]
    Print sVal
  Next
 
End

studiero l esempio

L'esempio di Gianluigi va sostanzialmente letto così:

Codice: [Seleziona]
' Per ogni stringa contenuta nell'array...
  For Each sVal In ["Paperino", "Qui", "Quo", "Qua"]

' ...stampane i caratteri nello standard output:
    Print sVal

   Next