ваше регулярное выражение:
([\(]*([\w][\/]?[\w]?(%)?(,)?)*|[\/.]|[\w]([\-\*|\+|\\|\<\>|\=]([\(]*[\w][\/]?(%)?[\)]?[\)]?(,)?)+)*[\)]?)*$/
можно представить в виде:
Debuggex Demo
если не опечатка в своем регулярном выражении, он никогда ничего не совпадают; регулярное выражение заканчивается $/
, что означает конец строки, за которым следует /
, если вы не соответствуете нескольким строкам. Если бы это было домашнее задание, я бы сказал, что учитель делает плохую шутку из-за $/
, что обычно не соответствует чему-либо.
После некоторого упрощения вы получите:
(\(*(\w\/?\w?(%)?(,)?)*|[\/.]|\w([-*|+\\<>=](\(*\w\/?(%)?\)?\)?(,)?)+)*\)?)*$/
Если вы не заботитесь о группировке, то это похоже:
(\(|[\/.]|(\w\/?\w?%?,?)|\w([-*|+\\<>=](\(*\w\/?%?\)?\)?,?)+)*\)?)*$/
Debuggex Demo
это имеет то преимущество, что (a*|b*)*
может быть упрощена в (a|b)*
Это может помочь: https://www.debuggex.com/r/MyliJBLGcB1qhHQz, или это http://regex101.com/r/vO3aI9. Тот, кто написал этот образец, действительно не знал, что они делают, если можно так выразиться. – Kobi
Lol это до моего времени, но это, похоже, соответствует требованию. Мне нужно сделать улучшения, но я не понимаю, что это делает. Спасибо за ссылки, прохождение через них может помочь мне понять это. – Aashray