Если вам нужен синтаксический анализ и json без необходимости вручную сопоставлять ключи и поля, вы также можете использовать EVReflection . Затем вы можете использовать код типа:
var user:User = User(json:jsonString)
или
var jsonString:String = user.toJsonString()
Единственное, что вам нужно сделать, это использовать EVObject в качестве базового класса объектов данных. См. Страницу GitHub для более подробного примера кода
http://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines
Еще более подробный: http://www.regular-expressions.info/refflavors.html
Инструменты/языки наиболее регулярного выражения поддерживают эти основные возможности:
Более усовершенствованная поддержка инструментов/языков:
Нет никакого стандартного механизма. Однако формат Расширенного регулярного выражения POSIX является допустимым подмножеством большинства механизмов и вероятно так близок, как Вы доберетесь до стандартизированного подмножества.
Если бы Вы взяли grep regexp грамматика, не egrep один, или sed regexp грамматика и использовали это, то необходимо использовать безопасное подмножество через многие платформы и инструменты.
О единственной вещи, которая может укусить Вас затем, когда Вы пойдете сдвиг между regexp реализациями с помощью отслеживания в обратном порядке использования Конечных автоматов (FSA) и, например, реализации квантора будут варьироваться от grep до Perl.
Основанные на FSA реализации найдут самое долгое соответствие, запускающееся в первом возможном положении. Отслеживание в обратном порядке найдет лево-смещенное первое соответствие, запускающееся в первом возможном положении. Таким образом, это попробует каждое ответвление в порядке в шаблоне, пока соответствие не будет найдено.
Рассмотрите строку "xyxyxyzz"
, и шаблон "(xy)*(xyz)?"
. Основанные на FSA механизмы будут соответствовать самой длинной подстроке, "xyxyxyz"
. Отслеживание в обратном порядке основанных механизмов будет соответствовать лево-смещенной первой подстроке, "xyxyxy"
.
См. Синтаксис регулярных выражений emacs: http://www.gnu.org/software/emacs/manual/html_node/emacs/Regexps.html#Regexps .
] Я помню, как читал, что синтаксис emacs высечен в камне (по причинам обратной совместимости), поэтому, если вы хотите быть совместимым с всем , сделайте все совместимым с этим. Некоторые инструменты могут его поддерживать, другие - нет.
Хотя у вас есть достойная цель, я думаю, что ее будет чрезвычайно трудно достичь, и я также обнаружил, что с регулярными выражениями emacs сложно работать. Может быть, 99% всего достаточно хорошо, если это сделает вас счастливее и продуктивнее?