Как я могу использовать одно и то же регулярное выражение в разных языках программирования?

Я видел этот вопрос и по опыту знаю, что каждый язык, кажется, поддерживает разные диалекты регулярных выражений. Я полагаю, что проблема существует уже давно, поэтому кто-то , должно быть, хотел что-то с ней сделать.

У меня есть довольно большой проект, который включает JavaScript, Ruby и Java, и все они должны касаться одних и тех же регулярных выражений. Мы выбрали Java в качестве нашего «официального» интерпретатора RE, что означает, что каждый раз, когда двум другим языкам необходимо оценить RE, они должны каким-то образом передать его программе Java, и это начинает добавлять много накладных расходов.

Если бы я мог выбрать любой RE диалект и вызвать его хотя бы частично из всех языков, это было бы для нас огромным шагом вперед. Это возможно? Это уже делается? Мы посмотрели на PCRE, и его технически можно вызвать через собственные привязки из Java и Ruby (хотя JS остается в стороне), но я не нашел, чтобы кто-то действительно это делал. Неужели мы одни?

ETA: морщинка, о которой я не упомянул, заключается в том, что эта система применяет регулярное выражение , предоставленное пользователем. (Да, я понимаю, что это проблема безопасности и т. Д., Но она предназначена для внутреннего использования доверенными, атрибутированными пользователями.) Я определенно могу предложить составить список «не делайте этого» мощные функции, которых следует избегать, но я надеюсь, что это не лучшее решение.

16
задан Community 23 May 2017 в 11:48
поделиться