2010-05-13 67 views
5

如何在Erlang中执行正则表达式匹配?在Erlang中匹配字符串正则表达式

我所知道的是: f(“AAPL”++ Inputstring) - > true。

,我需要匹配 的线条 “AAPL,07月 - 2010 15:58,21.34,21.36,21.34,21.35,525064 \ n” 个

在Perl的正则表达式:^ AAPL,*(或类似的东西)

在Erlang?

+0

在这种情况下,你给将匹配字符串的例子,所以我假定你是一个更一般的情况后,真的。在这种情况下,使用已经回答的're'模块。 – rvirding 2010-05-14 12:02:43

+0

如果你只是匹配一个字符串的前五个确切字符,正则表达式是关于你能做到的最慢和最复杂的方式。 – Dustin 2010-05-14 16:55:09

+0

@Dustin前五个字符是动态的。所以你有什么建议? – portoalet 2010-05-15 03:35:15

回答

7

使用re模块,例如:

... 
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

相当于're:run(String,RegExp)' – viraptor 2010-05-13 16:05:43

+0

这与运行=>正则表达式:first_match(Line,“^ AAPL,*”)有何不同? – portoalet 2010-05-15 03:36:58

+0

好吧,它可能没有什么不同,但是根据正则表达式模块文档'它已被re模块废弃,并且将在未来版本中删除'。所以,你应该更喜欢重新模块。 – 3lectrologos 2010-05-15 06:20:05