question sur le parsing
Darkblue1-Jan-2015/13:46:45+1:00
bonjour,
j'essaie de parser des chaine de caracteres au format suivant :
x characteres sans importance 2 chiffres et la chaine "End"

quand je ne force pas le premier chiffre je n'arrive pas à parser
digit: charset "01234567890"
>> parse/all "inventaire14End" [thru 2 digit "End"]
== false
>> parse/all "inventaire14End" [thru "1" 1 digit "End"]
== true


est il possible de parser la chaine sans tenir compte de la valeur des chiffres?
Darkblue1-Jan-2015/14:05:24+1:00
j'oubliais,
Meilleurs voeux pour 2015
DideC2-Jan-2015/12:05:06+1:00
Je ne suis pas un spécialiste, mais il me semble que 'to et 'thru n'accepte pas les bitsets. Donc il faut ruser :
notdigit: complement digit: charset "01234567890"
parse/all "inventaire14End" [any notdigit 2 digit "End"]
darkblue2-Jan-2015/14:23:02+1:00
merci Didec, ça parait pas mal en effet
je vais juste verifier qu'il n'y a pas de chiffre dans la chaine de caracteres que je squizze
DocKimbel9-Jan-2015/15:43:19+1:00
Juste pour information, Red permet d'utiliser des règles arbitraires en argument de THRU/TO:
red>> digit: charset "012345789"
== make bitset! #{000000000000FDC0}
red>> parse "inventaire14End" [thru copy number 2 digit "End"]
== true
red>> number
== "14"


Mais ce genre de construction produit des performances inférieures à une règle plus simple, comme celle proposée par DideC.
darkblue30-Jan-2015/17:48+1:00
Il va falloir que je me penche sur Red d'ici peu

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2