Bonjour,

Qui peut me faire une expression régulière avec "preg_match" pour identifier les couleurs HTML - différente d'un #hastag (hahah)

preg_match ou !preg_match

On part du principe que la chaine :

  1. commence par un dièse "#"
  2. contient entre 3 et 6 caractères - n'est ce pas ?
  3. est composée de chiffres de 0 à 9
  4. est composée de lettres de A à F


Merci à vous.

NdMoi-même : un #hastag ne commence pas (jamais) par un chiffre déjà et a minimum 2 caractères

Difficile !?!



WikipediA : Couleur_du_Web

Merci

J'ai commencé cette expression pour les #hastag

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$text = preg_replace_callback("#(^|[ \n\r\t])\#([^\d\s]{1}[A-Za-z0-9_ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ]{1,}+)#","html_link_hastag", $text);
Qui signifie : commence un champ ou précédé par un espace, ou après une nouvelle ligne, ou après une retour ligne, ou après une tabulation, qui ne pas être ni un décimal sur le 1er caractère, ni un espace après le dièse, qui est composé de lettres comprise entre A à Z minuscule/majuscule, de chiffres de 0 à 9, d'underscores et de caractères accentués sur 1 (donc 2) et plus

CF : PHP.Net * PCRE regex syntax * Character classes !

Que je forme dans la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function html_link_hastag($value) {
 
        //echo '<pre>'.print_r($value,1).'</pre>';
 
        $platform[0] = 'http://www.zw3b.net/?hashtag&v=';
        $platform[1] = 'https://twitter.com/hashtag/';
        $platform[2] = 'https://www.facebook.com/hashtag/';
 
        $random = rand(0,2);
 
        $link = $platform[$random].$value[2];
 
        //$mysql = une_autre_class::db_link_count_rows($url=$link) != 0 ? une_autre_class::db_link_update($url=$link) : une_autre_class::db_link_insert($url=$link); # exemple ;)
 
        $href = $value[1].'<a href="'.$link.'" title="Hastag : '.$value[2].'" target="_blank">#'.$value[2].'</a> <span class="link_nbr">hastag</span>';
 
        return $href;
    }
Parce que j'ai un bug -> çà me ressort un lien #hastag <-> si par malheur dans un de mes champ texte <-> il y a un "div" (ou autre) avec une balise style avec un color: #FFF; ou dans un border ou dans un background-color etc...

PS : J'ai une page web où je peut tester (j'ai déjà écris un texte pour le formulaire HTML) l'envoie et la sortie HTML sur la page HTML

Note de Moi-même : Un mémo personnel sur les expressions régulières - via mon API !

Salutations,
Romain