Если вы взяли грамматику Grep регулярное выражение, а не задать расширенное один, или SED грамматику регулярных выражений и используются, что вы должны использовать безопасное подмножество на многих платформах и инструментах.
О единственном, что может вас укусить, это когда вы переключаетесь между реализациями регулярных выражений с использованием автоматических автоматов (FSA) и тех, которые используют обратный трассировку, например. реализация кванторов будет отличаться от grep к Perl.
Реализации на базе FSA найдут самое длинное совпадение, начиная с первого возможного положения. Отслеживание будет найдено левое предвзятое первое совпадение, начиная с первой возможной позиции. То есть, он будет проверять каждую ветвь в порядке в шаблоне до тех пор, пока не будет найдено совпадение.
Рассмотрите строку "xyxyxyzz"
и рисунок "(xy)*(xyz)?"
. Двигатели на базе FSA будут соответствовать самой длинной подстроке, "xyxyxyz"
. Механизмы, основанные на обратном отслеживании, будут соответствовать первой подстроке с левым смещением, "xyxyxy"
.
«автомагистрали без конечных решений». Мой компьютер имеет ограниченную память; как он держит бесконечную $ THING? Я думаю, вы могли бы обозначить s/конечный/детерминированный/g. – 2009-05-18 13:44:26