2009-12-29 23 views
6

es la expresión regular igual entre idiomas?expresiones regulares: ¿lo mismo para todos los idiomas?

por ejemplo. si quiero usarlo en javascript, ¿tendría que buscar expresamente regexp para javascript? porque tengo algunas hojas de trucos. solo dice expresión regular.

me pregunto si podría usar esto en todos los idiomas, php, javascript y más.

Respuesta

9

Los conceptos básicos son básicamente los mismos, pero hay algunas discrepancias entre el motor que potencia el idioma, PHP y JavaScript difieren ya que PHP usa PCRE (Perl Compatible Regular Expressions).

PHP también tiene el motor de expresiones regulares compatible con POSIX (ereg_ * funciones), pero eso está en desuso.

Si aún no lo usa, le sugiero que pruebe RegexBuddy. Puede convertir varios motores Regex.

Puede encontrar alternatives for RegexBuddy on Mac here.

+0

pero ese es solo para Windows, ¿no?im en mac – ajsie

+0

Consulte aquí: http://alternativeto.net/desktop/regexbuddy/ –

1

expresión regular synax varía ligeramente entre los idiomas, pero en su mayor parte los detalles son los mismos. Algunas implementaciones de expresiones regulares admiten variaciones ligeramente diferentes en la forma en que procesan, así como lo que significan ciertas secuencias de caracteres especiales.

Google es tu mejor amigo. Google para expresiones regulares en el idioma de su elección.

2

Es posible que desee comenzar mirando here. Esa es mi Biblia cuando hago regexping!

Ahora, la expresión regular debería ser la misma en todas partes, al menos en los fundamentos básicos, sin embargo hay casos en los que difiere del compilador al compilador (o del intérprete si se quiere).

Así podría ser la forma de buscar un patrón específico, tomemos como ejemplo \w, eso es: seach for a word en C# pero el patrón en javascript podría ser diferente.

Cuando llega a un caso especial como este, es posible que desee revisar el enlace proporcionado anteriormente.

+1

Para una aclaración, \ w en cualquier intérprete Regex encuentra una palabra ** carácter ** (caracteres alfanuméricos y guiones bajos), no una palabra completa. – BraedenP

+0

Ah. ¡Estás en lo correcto, señor! –

0

Una de las mayores variaciones en regex es cómo se escapan/interpretan los caracteres especiales.

Por ejemplo, grep, vim y perl regexs difieren en cómo manejar cosas como() para agrupar/capturar un patrón para referenciar atrás en la búsqueda & reemplazar. IIRC, Perl los usa directamente mientras que grep y vim requieren que se escapen.

Además, Perl regex puede admitir más funciones que los motores regex anteriores. Regex que hubiera sido simple en Perl fue una gran Pita en grep.

No estoy del todo seguro de si esta es una forma correcta de resumirlo, pero básicamente hay dos clases principales de expresiones regulares: Posix (grep y herramientas similares) y Perl compatible (con variaciones menores).

Una herramienta que he encontrado útil es The Regex Coach - interactive regular expressions.

Cuestiones relacionadas