2012-12-25 3 views
15

Каковы различия между perl и java в отношении того, какие условия регулярного выражения поддерживаются?Каковы различия между возможностями perl и java regex?

Этот вопрос изолируется только регулярные выражения, и в частности, исключает различия в как регулярного выражения можно использовать - то есть функции/методы, доступных, что использование регулярных выражения - и синтаксические различия между языками, такими как требование Java, чтобы избежать обратная косая черта и т. д.

Особый интерес представляет частичная/случайная поддержка java для задержек с переменной длиной.

+0

Немного от вопроса, но это грубое сравнение между регулярным выражением ** ECMA ** (JS) и Perl: http://stackoverflow.com/a/12127503/1400768 – nhahtdh

ответ

16

В разделе «Сравнение с Perl 5» раздела java.util.regex.Pattern перечислены многие отличия. Например, Java не поддерживает conditional regex. Для этого вам нужно использовать внешнюю библиотеку, например JRegex.

+8

Это кажется вполне полным. К этому я добавлю, что у механизма Perge regex гораздо лучшая поддержка Unicode, чем у других. Фактически, разработчики Perl недавно столкнулись с недостатками в стандарте Unicode, потому что никто до сих пор не дошел до Perl. (В результате был обновлен стандарт!) – ikegami

1

Существует абзац в java.util.regex.Pattern API "Сравнение с Perl 5".

+0

Пожалуйста, добавьте ссылку. Страница, которую я получил от поиска, которая говорит, что у регулярного выражения Perl нет функции, добавленной полвека назад. – ikegami

+0

@ikegami .. Возможно, вы попали на ссылку Java 6 или старше. Найдите 'класс PAttern в Java 7'. Я добавил ссылку в свой ответ. –

1

В слайдах от рассказов OSCON от Tom Christiansen Unicode Support Shootout: The Good, the Bad, & the (mostly) ugly описаны некоторые различия между Perl и Java (и другими языками) в отношении поддержки технических рекомендаций Unicode для регулярных выражений, и они различают Java 1.6 и 1.7 (что значительно улучшает поддержку) ,

 Смежные вопросы

  • Нет связанных вопросов^_^