Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
@#%([[^&*=1] — это корректное выражение?задача стояла написать эффективное регулярное выражение.
Я не использовал обычных круглых скобок из-за того, что они работают медленней чем "(?: )".
Конструкции вида "[^"]" — я использовал, для того чтобы в селекторах можно было писать свои регулярные выражения, а также любой текст, например для псевдо селектора ":contains()".
Фридл невероятно прав, однако, если ты его повнимательнее почитаешь, то найдешь, что использование сохраняющей скобки И ссылки на нее в САМОМ выражении может оказаться дешевле, чем вилки из ТРЕХ альтернатив, потому что regex-машина унутрянне делает промежуточную запись бОльшего размера, чем твоя несчастная кавычка, из-за которой вилка лепится.
"[^\\"]*(?:\\.[^"\\]*)*"
|
'[^\\']*(?:\\.[^'\\]*)*'
в JavaScript — абсолютно уверен. Так как я реализовал такой парсер. И он на 10 мс быстрее чем jQuery, на 5мс — за yass в FF3.0 тестировал. Но статья не о том.
но что когда хочется написать свой псевдо селектор?Лично мое мнение таково, что если человеку не хватает 3-х базовых селекторов (id, tag, class), значит он что-то делает не так. Все псевдоселекторы — это чуть-чуть от лукавого.
Надеялся, что может кто-то выскажет критику по самому выражению и думал, что может кому-то будет интересно и получится еще более усовершенствовать его.Чем длиннее и запутаннее становится регулярное выражение, тем сложнее его совершенствовать, т.к. при малейших изменениях импакт может быть очень большим и надо тестировать _все_ варианты использования.
Лично мое мнение таково, что если человеку не хватает 3-х базовых селекторов (id, tag, class), значит он что-то делает не так. Все псевдоселекторы — это чуть-чуть от лукавого.То есть, чтобы сделать буквицу, вы будете к каждой первой букве строки лепить span? Чем вы замените :hover или :target? ЖабаСкриптом?
input[type="file"]?
280 кроказябл или взрывная мощь регулярных выражений