Я видел this question, и по опыту знаю, что каждый язык, кажется, поддерживает другой диалект регулярного выражения. Я полагаю, что проблема существует уже давно, поэтому кто-то, должно быть, хотел что-то сделать.Как я могу использовать одно и то же регулярное выражение на разных языках программирования?
У меня есть довольно большой проект, который включает JavaScript, Ruby и Java, и все они должны касаться одних и тех же регулярных выражений. Мы выбрали Java как наш «официальный» интерпретатор RE, а это означает, что в любое время, когда другие два языка должны оценивать RE, они должны каким-то образом передать его в Java-программу, и это начинает складываться из-за большого количества накладных расходов.
Если бы я мог выбрать любой RE диалектом и вызывать, что, по крайней мере, изначально из всех языков, это был бы огромный шаг вперед для нас. Это возможно? Это уже сделано? Мы смотрели на PCRE, и это технически можно вызвать его через собственные привязки с Java и Ruby (хотя он оставляет JS на холоде), но я не нашел никого, кто действительно это делает. Мы одни?
ETA: морщина Я не упомянул, что эта система применяется пользователь поставил regex. (Да, я понимаю, что это security issue и т. Д., Но это для внутреннего использования доверенными, приписываемыми пользователями.) Я, конечно же, могу предложить список возможностей «не делай этого», чтобы избежать, но Я надеюсь, что это не лучшее решение.
А, пользовательские регулярные выражения. Я знал, что у нас что-то не хватает;) – BoltClock
(Я просто хотел опубликовать стоп-лосс, который мы использовали, на всякий случай, но я все равно люблю слышать что-то лучшее.) Мы выбрали Java regex. Мы можем запустить их из Ruby-кода, если Ruby запущен в JRuby. Для наших целей это достаточно хорошо. Мы также написали сервлет Java, который в основном запускает регулярное выражение против тестовых данных, в качестве службы RESTful. Это позаботится о конце JavaScript, хотя, конечно, это не очень хорошо: -/ – Coderer