1

yop,

quand on poste une url entre parenthèses, la parenthèse finale est include dans l'url. Souvent on oublie l'espace séparateur, et ce n'est de toute façon pas très beau, entre autre parce qu'une parenthèse en début d'url ne pose pas de problème. Ca serait possible de régler ça ou pas, stp ?
(http://www.yaronet.com)

2

La parenthere pourrais etre voulue dans l'URL...
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

3

Je savais pas trop. J'y ai pensé, mais c'est très probablement le cas le plus rare, et la balise [url] est toujours utilisable dans ce cas. En plus, le parseur pourrait vérifier le matching des parenthèses pour optimiser sa décision. embarrassed

4

Oui, c'est un problème qui se pose avec tout un tas d'autres caractères qui sont valides dans les URLs, par exemple les virgules. Il y a deux choix :

- Reconnaître tous les caractères dans les URLs, et donc bouffer les virgules, parenthèses ou autres s'ils y sont accolés
- Refuser certains caractères spéciaux dans les URLs, et forcer l'utilisation de la balise [url] pour celles qui en contiennent

Pour l'instant c'est la première solution qui a été retenue, ça peut changer, mais c'est encore un truc qui va faire débat donc je vous laisse organiser le vote le cas échéant smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

Ok. En tout cas, merci d'etre ouvert sur la question. Ca serait bien de savoir ce que les uns et les autres en pensent alors. Perso, ce genre de caractères inclus dans les URLs me fait chier à chaque fois et ne m'arrange jamais, donc je suis pour une modification du parser.
Mais j'aimerais les autres avis avant de lancer un vote. smile

6

-

7

Je suis d'accord, d'autant que les parenthèses sont peu courantes dans les URLs (de tête, j'ai pas souvenir d'en avoir déjà vu une).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

8

Est ce que ça serait possible de manière simple d'ignorer parenthèses points et virgule uniquement s'ils sont en fin d'url? Ça devrait permettre de régler la majorité des cas.
avatar

9

Zero: Wikipedia est un spécialiste d'utiliser des caractères peu usité dans les URLs smile
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

10

-

11

[message corrupted]

12

Orion: il n'est pas possible de matcher un nombre arbitraire de paires de parenthèses imbriquées avec une regex, c'est la première chose qu'on t'apprend en cours de compil grin

et c'est pour ça qu'on a inventé les grammaires hors-contexte, qui savent matcher les {}, begin/end, et compagnie.

je propose juste comme ./8 : ne pas intégrer un caractère spécial "habituel", genre '");,.: quand il apparait en dernière position d'une URL.

13

-

14

Exact. Il me semble qu'on peut néanmoins tricher si on limite le nombre de parenthèses maximum imbriquées, au prix d'une regexp hideuse (et d'autant plus hideuse que le nombre de parenthèses imbriquées à supporter est grand). En pratique, 3 parenthèses imbriquées me semble déjà beaucoup, mais je comprendrais que Zeph n'ait pas envie de rajouter des horreurs pareilles dans ses sources tongue

Godzil > Très juste, je n'y pensais plus. D'autant que Wikipédia utilise souvent la forme X_(Y), avec justement une parenthèse fermante comme dernier caractère de l'URL (exemple).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

15

orion: tu peux utiliser *des* regex pour parser les tokens d'un langage, mais pas UNE regex pour matcher des programmes complets.

16

Y a peut-être pas besoin de le faire dans l'expression rationnelle ? Si une adresse est détectée, on regarde si le dernier caractère est une parenthèse et si c'en est une, on vérifie la parité dans l'adresse. Si c'est bien tout refermé comme il faut, on la garde dans l'adresse, sinon, on retire la parenthèse de l'adresse (et on la replace naturellement à la suite du code de remplacement pour le lien).
avatar

17

Alors je ne vais pas faire de code spécifique supplémentaire pour parser les URLs, donc c'est assez limité au niveau de ce qu'on peut faire. C'est pour ça que je n'ai proposé que deux options. Tester si l'URL termine par une parenthèse ou une virgule est envisageable, mais ça me semble être vraiment cas particulier que j'aimerais généraliser un peu pour ne pas revenir 30 fois patcher ce code. Vérifier l'imbrication correcte des parenthèses n'est pas faisable avec des regexp POSIX, donc ça n'est pas quelque chose que je peux ajouter. Attention au cas particulier relevé par Zerosquare et Godzil, donc.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

18

Ok. Pour moi, ça change pas, le cas des url de WP foutues comme ça ne doit pas survenir plus d'une fois sur 10k liens postés.

Donc le vote revient à la proposition initiale de Zeph :


A noter qu'actuellement, c'est la solution 1 qui est implémentée.

19

ça ferait chier de flinguer les url wikipedia

perso j'ai pris l'habitude de mettre un espace autour des url donc je suis plutôt pour ne rien changer (mais on a l'air minoritaires)
avatar

20

Moi j'aurais bien proposé une solution àlakon…

Inclure les parenthèses dans les URL, sauf:
 • Si suivies par un espace
 • Si suivies par un point
 • Si suivies par une virgule
 • Si suivies par une fin de ligne

Inclure les virgules dans les URL, sauf:
 • Si suivies par un espace
 • Si suivies par (file|ftp|http):// ou autre ? (Genre pour autoriser les listes d'url non espacées)
 • Si suivies par une fin de ligne (À voir ?)

Mais bon, si il faut des regex POSIX, ça va pas être possible sad
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

21

sinon, tout simplement, exclure la parenthèse si y en a une ouvrante avant (ftp|https?) tongue

Genre ce truc de cochon:
(?:(\(?).*)?(((?:ftp|https?):\/\/[A-Za-z0-9_#.\/,;(]+)\)?)

( https://regex101.com/ )

Test sur (alakon http://github.com#Blabla):

1. [0-1] `(`
2. [8-26] `http://github.com#`
3. [8-26] `http://github.com#`

Test sur (http://github.com#Blabladodo)

1. [0-1] `(`
2. [1-30] `http://github.com#Blabladodo)`
3. [1-29] `http://github.com#Blabladodo`


EDIT: Ah mais:

Test sur (http://github.com#Zomg(Wiki)Pedia)

1. [0-1] `(`
2. [1-23] `http://github.com#Zomg`
3. [1-23] `http://github.com#Zomg`

Test sur http://github.com#Zomg(Wiki)Pedia)
1. [0-0] ``
2. [0-22] `http://github.com#Zomg`
3. [0-22] `http://github.com#Zomg`

Test sur http://github.com#ZomgLol)
1. [0-0] ``
2. [0-26] `http://github.com#ZomgLol)`
3. [0-25] `http://github.com#ZomgLol`

sad

22

Non mais cherche pas, le problème peut pas être traité par des regexp, on pourra toujours trouver des cas qui marcheront pas tongue
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

23

Bon y'a une majorité de votes pour le second choix, ça veut dire que vous êtes OK pour dégager les parenthèses et virgules du parseur, et d'imposer l'utilisation de la balise [url] pour les URLs qui contiennent l'un de ces deux caractères ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

24

Pour moi, oui. cheeky

25

Est-ce que tu pense qu'il serait possible avant de poster de faire un simple popup/message comme pour le cross post qui dise "Attention il y a un ')' '.' a la fin d'un URL dans le post, si vous continuez sans utiliser [url] elle va etre ignorer"
?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

26

Vu ce que ça demande comme changement, clairement non grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

27

embarrassed

#loin#
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

28

Perso j'ai pas d'avis, les deux solutions me vont smile
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

29

Bon, et bien implémentons les deux solutions avec une option dans le profil ! grin

30