【问题标题】:match names with unicode chars将名称与 unicode 字符匹配
【发布时间】:2012-03-23 13:14:57
【问题描述】:

谁能帮我在 C# 和 js 中匹配以下类型的字符串“BEREŽALINS”、“GŽIBOVSKIS”,我试过了

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

等等……但没有任何效果。 谢谢

【问题讨论】:

标签: c# regex character-properties


【解决方案1】:

刚刚写了一个小控制台应用程序来做到这一点:

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

适用于你给我的两个例子,但不确定所有场景:)

【讨论】:

    【解决方案2】:

    你能举例说明什么应该匹配吗?

    阅读您的问题就像您只想匹配字符串(可能在单独的行上)。如果是这样的话,只需使用

    ^.*$
    

    在 C# 中,这变成了

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

    在 javascript 中这是

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多