using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var strings = new List<string> { "JohnnameSnow", "John" };
foreach (var s in strings)
{
Console.WriteLine(s);
var m = Regex.Match(s, @"^(?<first>\p{L}+?)(?:name(?<last>\p{L}+))?$");
if (m.Success)
{
Console.WriteLine("First name: {0}, Last name = {1}", m.Groups["first"].Value, m.Groups["last"].Value);
}
else
{
Console.WriteLine("No match!");
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBzdHJpbmdzID0gbmV3IExpc3Q8c3RyaW5nPiB7ICJKb2hubmFtZVNub3ciLCAiSm9obiIgfTsKICAgICAgICBmb3JlYWNoICh2YXIgcyBpbiBzdHJpbmdzKQogICAgICAgIHsKICAgICAgICAJQ29uc29sZS5Xcml0ZUxpbmUocyk7CiAgICAgICAgCXZhciBtID0gUmVnZXguTWF0Y2gocywgQCJeKD88Zmlyc3Q+XHB7TH0rPykoPzpuYW1lKD88bGFzdD5ccHtMfSspKT8kIik7CiAgICAgICAgCWlmIChtLlN1Y2Nlc3MpIAogICAgICAgIAl7CiAgICAgICAgCQlDb25zb2xlLldyaXRlTGluZSgiRmlyc3QgbmFtZTogezB9LCBMYXN0IG5hbWUgPSB7MX0iLCBtLkdyb3Vwc1siZmlyc3QiXS5WYWx1ZSwgbS5Hcm91cHNbImxhc3QiXS5WYWx1ZSk7CiAgICAgICAgCX0KICAgICAgICAJZWxzZQogICAgICAgIAl7CiAgICAgICAgCQlDb25zb2xlLldyaXRlTGluZSgiTm8gbWF0Y2ghIik7CiAgICAgICAgCX0KICAgICAgICB9Cgl9Cn0=