#1 Le 22/09/2009, à 23:30
- FRUiT
REGEX & coloration syntaxique
Bonsoir,
J'ai un petit souci pour colorer des lignes de texte.
Ce que je veux :
Une ligne commençant par - doit se colorer en rouge. si dans cette ligne apparait un nouveau signe - entouré d'espaces, la coloration doit cesser.
Tout va bien jusqu'a "entouré d'espaces". Et là c'est le drame.
Exemple :
- Albert DUPUIS-MAISON - Architecte d'intérieur
Dans cet exemple il y a 3 tirets -
Je désire que la coloration rouge aille jusqu'au dernier tiret -
Le tiret entouré d'espaces doit être le délimiteur. [[:space:]]-[[:space:]] par exemple.
icolor brightred "^-(\\.|[^-]+( ))*"
Avec cette expression REGEX, ça marche plus ou moins sauf dans le cas de l'exemple, la coloration stoppera à la fin du mot "Albert" (c'est à dire en fait, au premier mot contenant un tiret)
Enfin en gros j'ai pas bon j'ai beau essayer des millions de trux j'arrive pas au résultat... Si une âme charitable s'y connais bien en REGEX ^^
[EDIT] et hop exemple en couleur
Dernière modification par FRUiT (Le 23/09/2009, à 00:34)
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#2 Le 22/09/2009, à 23:37
- FRUiT
Re : REGEX & coloration syntaxique
Et également si vous connaissez de bons et complets manuels, avec de nombreux exemples je veux bien J'ai essayé man c'est vraiment succint, un ou deux tutos mais incomplets...
[EDIT] Mes excuses suis là a l'air bien sympa
http://www.regular-expressions.info/tutorialcnt.html
Dernière modification par FRUiT (Le 23/09/2009, à 01:06)
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#3 Le 24/09/2009, à 20:21
- FRUiT
Re : REGEX & coloration syntaxique
finalement, ça, ça marche bien :
icolor brightred start="^\s*-" end="(\s-|\s--|[A-Z_0-9-]$|(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|~|\.|\"|\'|@)$)
La cerise sur le gâteau aurait été que le 2ème tiret ne soit pas coloré rouge lui non plus mais au moins ça marche.
Je pense que c'est simplifiable (là ça parait long )en effet la dernière partie indique de stopper la couleur rouge après une fin de ligne si aucun 2ème tiret ne se présente par exemple car le mode start= end= est multiligne. Dans les documentations je vois que le symbole de nouvelle ligne est \n et que le retour chariot est \r cependant aucun des deux ne semblent convenir, du moins pour un fichier nanorc ? J'avais essayé :
icolor brightred start="^\s*-" end="(\s-|\s--|[A-Z_0-9-]$|\n$)"
Mais ça ne marche pas pourquoi ??
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne