сопоставлять имена с символами Юникода - PullRequest
1 голос
/ 23 марта 2012

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

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

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

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

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

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

^.*$

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

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

А в javascript это

if (/^.*$/m.test(subject)) {
    // Successful match
} else {
    // Match attempt failed
}
0 голосов
/ 23 марта 2012

Только что написал небольшое консольное приложение для этого:

    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();
    }

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

...