2010-05-13 17 views
5

¿Cómo haré la correspondencia de expresiones regulares en Erlang?Correspondencia de expresiones regulares de cadenas en Erlang

Todo lo que sé es esto: f ("AAPL" ++ Inputstring) -> true.

Las líneas que necesito para que coincida con "AAPL, 07-mayo-2010 15: 58,21.34,21.36,21.34,21.35,525064 \ n"

En Perl expresiones regulares:^AAPL, * (o algo similar)

En Erlang?

+0

En este caso, el ejemplo que da coincidirá con una cadena así que supongo que son realmente después de un caso más general. En ese caso, use el módulo 're' como se ha respondido. – rvirding

+0

Si solo hace coincidir los primeros cinco caracteres exactos de una cadena, la expresión regular es la forma más lenta y más complicada de hacerlo. – Dustin

+0

@Dustin los primeros cinco caracteres son dinámicos. ¿Entonces qué sugieres? – portoalet

Respuesta

7

Uso del módulo de re, por ejemplo .:

... 
String = "AAPL,07-May-2010 15:58,21.34,21.36,21.34,21.35,525064\n", 
RegExp = "^AAPL,*", 
case re:run(String, RegExp) of 
    {match, Captured} -> ... ; 
    nomatch -> ... 
end, 
... 
+1

Equivalente a 're: run (String, RegExp)' – viraptor

+0

¿En qué se diferencia esto de running => regexp: first_match (Line, "^ AAPL, *")? – portoalet

+0

Bueno, puede que no sea diferente, pero de acuerdo con la documentación del módulo regexp 'ha sido obsoleto por el módulo re y se eliminará en una versión futura'. Entonces, definitivamente deberías preferir el módulo re. – 3lectrologos

Cuestiones relacionadas