Skip to content

Instantly share code, notes, and snippets.

@Majkl578
Created September 26, 2011 19:31
Show Gist options
  • Select an option

  • Save Majkl578/1243166 to your computer and use it in GitHub Desktop.

Select an option

Save Majkl578/1243166 to your computer and use it in GitHub Desktop.
<?php
$H = '[0-9a-fA-F]';
$NL = '\n|\r\n|\r|\f';
$UNICODE = '\\\\' . $H . '{1,6}[ \t\r\n\f]?';
$s = '\x{80}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}';
//$s = '\X'; // tmp
$NONASCII = '[' . $s . ']';
$ESCAPE = $UNICODE . '|\\[ -~' . $s . ']';
$NMSTART = '[_a-zA-Z]|' . $NONASCII . '|' . $ESCAPE;
$NMCHAR = '[a-zA-Z0-9_-]|' . $NONASCII . '|' . $ESCAPE;
$STRING1 = '\"((?:[^\n\r\f\\"]|\\' . $NL . '|' . $ESCAPE . ')*)\"';
$STRING2 = "\'((?:[^\n\r\f\\']|\\" . $NL . '|' . $ESCAPE . ")*)\'";
$IDENT = '-?' . $NMSTART . $NMCHAR . '*';
$NAME = $NMCHAR . '+';
$NUM = '[0-9]+|[0-9]*\.[0-9]+';
$STRING = $STRING1 . '|' . $STRING2;
$URLCHAR = '[#%&*-~]|' . $NONASCII . '|' . $ESCAPE;
$URL = '(' . $URLCHAR . '*)';
$W = '[ \t\r\n\f]*';
$VARIABLE = '(\$)(' . $IDENT . ')';
$RANGE = '(?:' . $H . '|\?){1,6}';
$S = '[ \t\r\n\f]+';
$COMMENT = '\/\*[^*]*\*+(?:[^\/][^*]*\*+)*\/';
$SINGLE_LINE_COMMENT = '\/\/.*(\n[ \t]*\/\/.*)*';
$CDO = preg_quote('<!--');
$CDC = preg_quote('-->');
$INCLUDES = preg_quote('~=');
$DASHMATCH = preg_quote('|=');
$PREFIXMATCH = preg_quote('^=');
$SUFFIXMATCH = preg_quote('$=');
$SUBSTRINGMATCH = preg_quote('*=');
$HASH = '#' . $NAME;
$IMPORTANT = '(?i:!' . $W . 'important)';
$DEFAULT = '!(?i:' . $W . 'default)';
$NUMBER = $NUM . '(?:' . $IDENT . '|%)?';
$URI = '(?i:url\(' . $W . '(?:' . $STRING . '|' . $URL . ')' . $W . '\))';
$FUNCTION = $IDENT . '\(';
$UNICODERANGE = '(?i:u\+(?:' . $H . '{1,6}-' . $H . '{1,6}|' . $RANGE . '))';
$PLUS = $W . '\+';
$GREATER = $W . '>';
$TILDE = $W . '~';
$NOT = preg_quote(":not(");
$HEXCOLOR = '\#[0-9a-fA-F]+';
$INTERP_START = '#\{';
$ANY = '(?i::(-[-\w]+-)?any\()';
$STRING1_NOINTERP = '\"((?:[^\n\r\f\\"#]|#(?!\{)|\\' . $NL . '|' . $ESCAPE . ')*)\"';
$STRING2_NOINTERP = "\'((?:[^\n\r\f\\'#]|#(?!\{)|\\" . $NL . '|' . $ESCAPE . ")*)\'";
$STRING_NOINTERP = $STRING1_NOINTERP . '|' . $STRING2_NOINTERP;
$STATIC_VALUE = '(?i:(-?' . $NMSTART . '|' . $STRING_NOINTERP . '|\s(?!%)|#[a-f0-9]|[,%]|' . $NUM . '|\!important)+(?=[;}]))';
$STATIC_SELECTOR = '(?i:(' . $NMCHAR . '|\s|[,>+*]|[:#.]' . $NMSTART . ')+(?=[{]))';
var_dump('/' . $IDENT . '/u');
var_dump(preg_match_all('/' . $IDENT . '/u', ' $drtjsyj: 3467;', $matches), $matches);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment