using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
public static void Main()
Console.WriteLine("1) AR: " + ExtractIdentificationNumber("DNI", "/ DNI: 25051343/ Cliente: SI"));
Console.WriteLine("2) AR: " + ExtractIdentificationNumber("DNI", "Solicitud: + , DNI: 26846949, Dirección: Dirección, Cód. Postal: Código Postal, Localidad: Berisso, Comentarios: Comentarios(opcional)"));
Console.WriteLine("3) AR: " + ExtractIdentificationNumber("DNI", "Cliente dni 28240268 de Roxana Márquez."));
Console.WriteLine("4) AR: " + ExtractIdentificationNumber("DNI", "Hola quisiera saber si el siguiente numero de dni posee deuda con ustedes 40.208.034. Americo Marin"));
Console.WriteLine("5) AR: " + ExtractIdentificationNumber("DNI", "dni_(argentina): 20989818"));
Console.WriteLine("6) CO: " + ExtractIdentificationNumber("CEDULA", "CEDULA: 10117420, BARRIO: milan, DIRECCIÓN: jardines de milan mz4 cs 33 dosquebradas risaralda, HORA DE CONTACTO: 16:00"));
Console.WriteLine("7) CO: " + ExtractIdentificationNumber("DNI", "Solicitud: + , DNI: 26846949, Dirección: Dirección, Cód. Postal: Código Postal, Localidad: Berisso, Comentarios: Comentarios(opcional)"));
Console.WriteLine("8) CO: " + ExtractIdentificationNumber("DNI", "Cliente dni 28240268 de Roxana Márquez."));
Console.WriteLine("9) CO: " + ExtractIdentificationNumber("DNI", "Hola quisiera saber si el siguiente numero de dni posee deuda con ustedes 40.208.034. Americo Marin"));
Console.WriteLine("10) CO: " + ExtractIdentificationNumber("DNI", "dni_(argentina): 20989818"));
static string ExtractIdentificationNumber(string identificador, string valor)
var separadores = "/;,:-".ToCharArray();
if (!separadores.Any(x => valor.Contains(x)))
return Regex.Replace(valor, "[^0-9]+", "");
foreach (var separador in separadores)
var items = valor.Split(separador);
foreach (var item in items)
if (item.ToUpper().Contains(identificador))
return ExtractIdentificationNumber(identificador, item);
else if (items.Count() == 2)
return string.IsNullOrEmpty(items[1].Trim()) ? string.Empty : items[1].Trim();