Linq To Regex
Pourquoi les expressions régulières (RegEx) resteraient-elles à jamais à l'abri de gains en productivité ? On l'a vu, Joshua Flanagan a fait un premier pas vers une écriture plus "humaine" des expressions régulières.
Il ne restait plus qu'à adapter son API de type "fluent" aux specificités de Linq pour bénéficier de la concision d'écriture propre à Linq.
C'est pas nouveau mais c'est toujours intéressant : Roy Osherove l'a fait. On peut dorénavant écrire ça :
[Test]
public void FindEmailUsingPattern()
{
var query = from match in
RegexQuery.Against("sdlfjsfl43r3490r98*(*Email@somewhere.com_dakj3j")
where match.Word.Repeat.AtLeast(1)
.Literal("@")
.Word.Repeat.AtLeast(1)
.Literal(".")
.Choice.Either(
Pattern.With.Literal("com"),
Pattern.With.Literal("net"))
.IsTrue()
select match;
foreach (var match in query)
{
Assert.AreEqual("Email@somewhere.com",match.Value);
}
}
Commentaires