2010-04-07 14 views
6

Específicamente, estoy usando el comando Linux:¿Qué sabor POSIX de regex usa Perl?

$ find . -regextype posix-extended -regex '<some regex>' ...

Sólo quiero para asegurarse de que el tipo POSIX que estoy usando es el tipo utiliza Perl, ya que es, con mucho, el que yo estoy más familiarizado .

+1

Perl ha definido muchas extensiones para la expresión regular POSIX (es decir, no es POSIX en absoluto). No creo que haya un equivalente POSIX. ¿Qué características de expresiones regulares específicas quieres usar? – Cameron

+1

La diferencia aquí es la sintaxis de \ {y \\) etc. Los posix extendidos son los que necesita. –

+0

Eso es como preguntar qué tipo de motocicleta es un Hummer. Son cosas realmente diferentes, aunque realizan funciones similares. – jpaugh

Respuesta

1

Las expresiones regulares de Perl son más parecidas a las de Posix. POSIX básica expresiones regulares utilizan ( y { para que coincida con los personajes reales, y \( y \{ como caracteres especiales, pero POSIX extendidas las utilizan ( y { para el mismo significado que en Perl y \( o \{ para que coincida con los personajes reales, la misma como Perl. Entonces posix-extended es lo que quieres.

8

El motor de expresiones regulares de Perl es el motor de expresiones regulares de Perl. perl define Perl.

Para obtener más información, consulte perldoc perlreref.

5

Perl usa expresiones regulares de Perl, no POSIX. Puede comparar las sintaxis usted mismo, por ejemplo, en regex(7).

9

Perl ha definido su propio estándar para expresiones regulares. Por ejemplo, existen sistemas como PCRE, que significa Expresiones regulares compatibles con Perl.

+4

o expresión regular compatible con Perl, ¿verdad? – Cameron

+3

+1, aunque tenga en cuenta que PCRE no es completamente compatible con Perl. –

+2

* El nombre es engañoso, porque PCRE es compatible con Perl solo si se tiene en cuenta un subconjunto de la configuración de PCRE y un subconjunto de las funciones de expresión regular de Perl. * Http://en.wikipedia.org/wiki/PCRE –

4

Por perldoc perlhist, Perl 0 ("Classified. Do not ask.") Usó expresiones regulares básicas. Todas las versiones desde, comenzando con Perl 1.000 en diciembre de '87, han usado expresiones regulares extendidas (y extendidas en esas ...).