gpt4 book ai didi

ios -\d 和\w 元字符是否包含国际字符?

转载 作者:行者123 更新时间:2023-12-01 20:03:39 24 4
gpt4 key购买 nike

在 Java 中出现 \d = [0-9]\w = [A-Za-z_] ,iOS 和 ICU 也一样吗?

我不想包含国际字符,但文档仅包含 Unicode 引用。

最佳答案

在 Java 中,\w匹配 [a-zA-Z0-9_]默认情况下,它只匹配 Unicode 字母,一旦你使用 (?U) (Pattern.UNICODE_CHARACTER_CLASS 标志),见 this demo :

String s = "abc śął"
System.out.println(s.replaceAll("(?U)\\w+", "")); // " "
System.out.println(s.replaceAll("\\w+", "")); // " śął"

在 Objective-C 中, \w将匹配 Unicode 字母:
NSString * s = @"abcśął";
NSString * rx = @"\\w+";
NSPredicate * rxTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", rx];
if ([rxTest evaluateWithObject:s]) {
NSLog (@"yes");
}
else
{
NSLog (@"no");
}

This will print yes .另见 the official reference :

\w    Match a word character. Word characters are [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}].


\p{}语法匹配属于某个类别的 Unicode 符号。所以, \w基本上匹配 Unicode 字母( \p{Ll} - 小写字母, \p{Lu} - 大写字母, \p{Lt} - 大写字母, \p{Lo} - 其他字母)和数字( \p{Nd} )。事实上, \w在 iOS 中也将匹配 _ (奇怪的是它没有出现在文档中)。

经验法则 :
  • 如果您只需要匹配 ASCII 字母和下划线,请使用明确的 [a-zA-Z_] .
  • 如果要确保只匹配 ASCII 数字,请使用明确的 [0-9] .
  • 关于ios -\d 和\w 元字符是否包含国际字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470980/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com