Здравствуйте!
Я новичок в написании регулярных выражений, прочитал некоторые статьи и одну книжечку по ним, но так и не нашёл ответа на свой вопрос!
Когда мне надо написать
regexp
я захожу на regex101 и просто вбиваю возможные варианты написания того, что мне нужно проверить на валидность, и потом собственно пишу регулярку , как например вот эту :
function\s*([a-z0-9_]*)\s*(?:\(\s*\)|\(\s*([a-z_0-9])*\s*\)|\(\s*([a-z_0-9, ]*)\s*\))
function man(){}
function(){}
function V_af(){}
function man (){}
function man (b){}
function man ( a){}
function man( a,b,c){}
function man( a, b, c ){}
function man( aads,bsadf,casdf){}
function man( aads , bsadf , casdf ){}
function (bsadf , casdf ){}
Но . . . я же могу рассмотреть не все варианты , отсуда собственно может появиться проблемы на стадии внедрения уже непосредственно допустим в код, НО опять же, если код из 10 строчек, его не проблема проверить, а если код состоит из 10к строк, то там ошибка в регулярке может стать причиной для тяжело уловимых багов (ну на сколько мне кажется)
В общем вопрос в том, на сколько такой подход к составлению регэкспов правилен? Существуют ли методики написания, т.к. я банальным образом доходя до "развилок" (так я называю варианты например написания аргументов) просто перечисляют их через
|
!? В общем было бы не плохо услышать ответ от тех, кто имеет опыт в их написании, и я сейчас не про тех, кто просто умеет выделить хекс код цвета, а про тех, кто их применяет в своём коде, и из своего опыта может дать пару полезных советов по использованию регулярок, т.к. есть некоторые регулярки, длиной в 20 строк, но при этом в интернете всё пестрит примерами вроде
\w@\w.com