Я видел этот вопрос , и по своему опыту я знаю, что каждый язык поддерживает свой диалект регулярного выражения. Я полагаю, что проблема существует давно, поэтому кто-то , должно быть, хотел что-то с этим сделать.
У меня довольно большой проект, включающий JavaScript, Ruby и Java, и все они должны касаться одних и тех же регулярных выражений. Мы выбрали Java в качестве нашего «официального» интерпретатора RE, что означает, что каждый раз, когда двум другим языкам нужно оценивать RE, они должны каким-то образом передавать его в программу Java, и это начинает увеличивать накладные расходы.
Если бы я мог выбрать любой диалект RE и вызвать его хотя бы частично на всех языках, это был бы огромный шаг вперед для нас. Это возможно? Это уже сделано? Мы рассмотрели PCRE, и технически можно *1011* вызывать из него через нативные привязки Java и Ruby (хотя он оставляет JS на холоде), но я не нашел никого, кто бы делал это на самом деле. Мы одни?
ETA: морщина, о которой я не упомянул, заключается в том, что эта система применяет предоставленное пользователем регулярное выражение. (Да, я понимаю, что это проблема безопасности и т. Д., Но она предназначена для внутреннего использования доверенными, атрибутированными пользователями.) Я могу, конечно, предложить составить список «не делайте этого» мощных функций, которых следует избегать, но я надеюсь, что это не лучшее решение.