Сопоставлять имена с символами Юникода
Может ли кто-нибудь помочь мне сопоставить следующий тип строк "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();
}
Работает с двумя примерами, которые вы мне дали, но не уверен во всех сценариях:)