Подтвердить что ты не робот

Почему нет стандартного выражения?

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

4b9b3361

Ответ 1

Существует стандарт IEEE, связанный с усилием POSIX. Реальный вопрос: "Почему все не следуют за ним"? Ответ, вероятно, заключается в том, что он не настолько сложный, как PCRE, в отношении жадного соответствия, а что нет.

Ответ 2

Собственно, там есть стандарт регулярного выражения (POSIX), но он дерьмовый. Поэтому люди расширяют свой механизм RE, чтобы соответствовать потребностям их применения. PCRE (регулярные выражения, совместимые с Perl) - это псевдостандарт регулярных выражений, совместимых с движком Perl RE. Это особенно актуально, потому что вы можете встроить Perl-движок в другие приложения.

Ответ 3

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

Дело в том, что стандарт HTML 5 не станет официальным стандартом до 2022 года. Но спецификация проекта уже доступна, и основные функции стандарта начнут появляться в браузерах задолго до того, как стандарт станет официальным.

Ответ 4

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

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

Подобные различия делают эту задачу особенно сложной для стандартизации.

Ответ 5

Перл был первым (или danm почти рядом с первым), и, хотя он и perl, и мы все любим его, старые люди считали, что ему нужно больше польских (то есть функций). Здесь появились новые типы.

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

Ответ 6

Просто догадаться: никогда не было версии, достаточно популярной, чтобы считаться каноническим стандартом, и не было стандартной реализации. Каждый, кто пришел и переоценил его, имел свои собственные идеи о том, как сделать его "лучше".

Ответ 7

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

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