Я ищу элегантный способ анализа заголовков судебных дел, которые могут иметь псевдонимы, такие как «AKA» и «FKA». Мне нужно получить тип псевдонима, а также следующую подпись. Я переборщил с решением, но хотел бы посмотреть, какие еще есть варианты. Мне нравится Linq, и я попробовал Sprache, но не совсем понял.
Example caption:
JOHN SMITH AKA JOHN R SMITH FKA JOHNNY R SMITH
Desired output:
Alias Type Found: AKA
Alias Caption Found: JOHN R SMITH
Alias Type Found: FKA
Alias Caption Found: JOHNNY R SMITH
Ниже приводится то, что я уже собрал в LinqPad.
void Main()
{
var caption = "JOHN SMITH AKA JOHN R SMITH FKA JOHNNY R SMITH";
caption.Split().ParseAliases( (t,c)=>{
Console.WriteLine ("Alias Type Found: {0}",t);
Console.WriteLine ("Alias Caption Found: {0}",c);
});
}
public delegate void AliasRetrievedDelegate(string aliasType, string aliasCaption);
public static class ParserExtensions{
private static IEnumerable<string> aliasTypes = new[]{"AKA","FKA"};
public static void ParseAliases(this IEnumerable<string> tokens,
aliasRetrievedDelegate d,
int startIdx = 0){
// TODO
}
}