Это Regex, которое я использую в своих кодах:
[+>~, ]?\s*(\w*[#.]\w+|\w+|\*)+(:[\w\-]+\([\w\s\-\+]*\))*(\[[\w ]+=?[^\]]*\])*([#.]\w+)*(:[\w\-]+\([\w\s\-\+]*\))*
После токенизации я использую функцию обрезки для удаления лишних пробелов, например:
выражение:
EE.class EE#id.class
токены:
EE.class
EE#id.class
токены после трима:
EE.class
EE # id.class
ИЛИ, например,
> EE.class (Оповещение, когда это прямой дочерний элемент, затем я обрабатываю любой код подстроки)
Другие подпрограммы могут проверять, является ли токен числом, например,
Вы можете использовать http://regexpal.com/ для испытаний.