Сопоставлять имена с символами Юникода

Может ли кто-нибудь помочь мне сопоставить следующий тип строк "BEREŽALINS", "GŽIBOVSKIS" в C# и JS, я пробовал

 \A\w+\z         (?>\P{M}\p{M}*)+             ^[-a-zA-Z\p{L}']{2,50}$

и так далее... но ничего не работает. Спасибо

2 ответа

Можете ли вы привести пример того, что не должно совпадать?

Читая ваш вопрос, вы хотите сопоставить только строку (возможно, на отдельной строке). Если это так, просто используйте

^.*$

В C# это становится

foundMatch = Regex.IsMatch(SubjectString, "^.*$", RegexOptions.Multiline);

И в JavaScript это

if (/^.*$/m.test(subject)) {
    // Successful match
} else {
    // Match attempt failed
}

Просто написал небольшое консольное приложение, чтобы сделать это:

    private static void Main(string[] args) {
        var list = new List<string> {
            "BEREŽALINS",
            "GŽIBOVSKIS",
            "TEST"
        };
        var pat = new Regex(@"[^\u0000-\u007F]");
        foreach (var name in list) {
            Console.WriteLine(string.Concat(name, " = ", pat.IsMatch(name) ? "Match" : "Not a Match"));
        }

        Console.ReadLine();
    }

Работает с двумя примерами, которые вы мне дали, но не уверен во всех сценариях:)

Другие вопросы по тегам