Bonjour,
Je vous propose un nouvel élément à utiliser : Developpez URL Convertor
Programme qui convertit automatiquement le contenu du presse-papiers lorsqu'il s'agit de l'URL d'une discussion ou d'un post du forum. L'URL est alors remplacé par sa forme courte.
À défaut d'avoir une utilité réelle, le programme est surtout un exemple d'utilisation d'expressions régulières alternatives avec l'unité RegExpr. Attention au nombre total de parenthèses !
Qu'en pensez-vous ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 function ShortURL(URL: string): string; const SEARCHPATTERN1 = 'http://www.developpez.net/forums/d(\d+).+/'; SEARCHPATTERN2 = '#post(\d+)'; RESULTFORMAT1 = 'www.developpez.net/forums/showthread.php?t=%s'; RESULTFORMAT2 = '#post%s'; var r: TRegExpr; begin r := TRegExpr.Create; r.Expression := '(' + SEARCHPATTERN1 + SEARCHPATTERN2 + '|' + SEARCHPATTERN1 + ')'; { Il y a quatre paires de parenthèses en tout. } if r.Exec(URL) then begin case r.SubExprMatchCount of 3: result := Format(RESULTFORMAT1 + RESULTFORMAT2, [r.Match[2], r.Match[3]]); 4: result := Format(RESULTFORMAT1, [r.Match[4]]); else result := 'Unexpected result: ' + IntToStr(r.SubExprMatchCount); end;
P.-S. En relisant une nouvelle fois mon code, j'ai réalisé que dans cet exemple, la première parenthèse ne sert à rien. On pourrait donc réécrire le programme ainsi (avec les modifications qui s'ensuivent) :
Code:
1
2 r.Expression := SEARCHPATTERN1 + SEARCHPATTERN2 + '|' + SEARCHPATTERN1; { Il y a trois paires de parenthèses en tout. }