Являются ли регулярные выражения универсальными?

Я хотел бы знать, являются ли регулярные выражения универсальными для всех языков, таких как PHP, Javascript и т.д.?

Ответ 1

Ваш вопрос несколько неоднозначен: вы должны определить, что вы имеете в виду под Универсальным, но вот мой ответ:

Регулярные выражения используются почти на всех языках программирования, таких как PHP, JavaScript, Perl, Awk, Java, С# и т.д.

Дело в том, что синтаксис может немного отличаться от одного языка к другому, и каждый язык может реализовать их по-другому и включать или не включать некоторые особенности (обычно это функции, которые позволяют регулярному выражению распознавать не только обычные языки, но и другие, такие как Context-Free)

Если вы создаете новый язык программирования, вы можете добавить их функцию регулярных выражений, но это не значит, что синтаксис будет точно таким же, как синтаксис регулярных выражений в .NET, например. И не только это: реализация двигателя, безусловно, будет отличаться (более/менее эффективна), чем другие...

Ответ 3

Нет. Существует много диалектов регулярных выражений, хотя основные выражения имеют тенденцию быть очень похожими. Кроме того, полезная функция, введенная на одном диалекте, часто копируется другими диалектами.

Ответ 4

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

Ответ 5

Нет. Но все, что вы, вероятно, будете использовать, будет поддерживать их в определенной форме или форме.

Ответ 6

Плохая новость - нет!

Существует множество реализаций и вариаций регулярных выражений.

В стандартной реализации unix ksh, bash, grep и awk используют несколько разные правила. lua имеет очень ограниченную библиотеку регулярных выражений, а Java имеет полностью функционирующую библиотеку lib, но с ее собственными причудами.

Хорошей новостью является то, что большинство популярных языков сценариев (php, python и т.д.) используют библиотеку "pcre", а "pcre" означает "Perl Compatible Regular Expresions" по определению, она работает так же, как и регулярные выражения perl, как насколько это возможно. И библиотека pcre связана с компилируемыми языками (C, С++ и т.д.).