Функции, характерные для всех regex разновидностей?

Если вам нужен синтаксический анализ и json без необходимости вручную сопоставлять ключи и поля, вы также можете использовать EVReflection . Затем вы можете использовать код типа:

var user:User = User(json:jsonString)

или

var jsonString:String = user.toJsonString()

Единственное, что вам нужно сделать, это использовать EVObject в качестве базового класса объектов данных. См. Страницу GitHub для более подробного примера кода

10
задан Alan Moore 18 May 2009 в 23:01
поделиться

6 ответов

Сравните разновидности регулярного выражения

http://www.regular-expressions.info/refflavors.html

12
ответ дан 3 December 2019 в 16:12
поделиться

Инструменты/языки наиболее регулярного выражения поддерживают эти основные возможности:

  1. Символьные Классы/Наборы и их Отрицание - []
  2. Привязки - ^ $
  3. Чередование - |
  4. Кванторы-? + * {n, m}
  5. Метасимволы - \w, \s, \d...
  6. Обратные ссылки - \1, \2...
  7. Точка-.
  8. Простые модификаторы как/g и/i для глобального и игнорируют регистр
  9. Выход из символов

Более усовершенствованная поддержка инструментов/языков:

  1. Предвидения и behinds
  2. Классы символов POSIX
  3. Границы Word
  4. Встроенные Переключатели как разрешение нечувствительности к регистру только для маленького раздела regex
  5. Модификаторы как/x для разрешения дополнительного форматирования и комментариев,/m для мультилинии
  6. Названные получения
  7. Unicode
1
ответ дан 3 December 2019 в 16:12
поделиться

Нет никакого стандартного механизма. Однако формат Расширенного регулярного выражения POSIX является допустимым подмножеством большинства механизмов и вероятно так близок, как Вы доберетесь до стандартизированного подмножества.

0
ответ дан 3 December 2019 в 16:12
поделиться

Если бы Вы взяли grep regexp грамматика, не egrep один, или sed regexp грамматика и использовали это, то необходимо использовать безопасное подмножество через многие платформы и инструменты.

О единственной вещи, которая может укусить Вас затем, когда Вы пойдете сдвиг между regexp реализациями с помощью отслеживания в обратном порядке использования Конечных автоматов (FSA) и, например, реализации квантора будут варьироваться от grep до Perl.

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

Рассмотрите строку "xyxyxyzz", и шаблон "(xy)*(xyz)?". Основанные на FSA механизмы будут соответствовать самой длинной подстроке, "xyxyxyz". Отслеживание в обратном порядке основанных механизмов будет соответствовать лево-смещенной первой подстроке, "xyxyxy".

1
ответ дан 3 December 2019 в 16:12
поделиться

См. Синтаксис регулярных выражений emacs: http://www.gnu.org/software/emacs/manual/html_node/emacs/Regexps.html#Regexps .

] Я помню, как читал, что синтаксис emacs высечен в камне (по причинам обратной совместимости), поэтому, если вы хотите быть совместимым с всем , сделайте все совместимым с этим. Некоторые инструменты могут его поддерживать, другие - нет.

Хотя у вас есть достойная цель, я думаю, что ее будет чрезвычайно трудно достичь, и я также обнаружил, что с регулярными выражениями emacs сложно работать. Может быть, 99% всего достаточно хорошо, если это сделает вас счастливее и продуктивнее?

0
ответ дан 3 December 2019 в 16:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: