gpt4 book ai didi

twitter - Twitter 主题标签中允许使用哪些字符?

转载 作者:行者123 更新时间:2023-12-02 02:48:47 36 4
gpt4 key购买 nike

在开发包含 Twitter 客户端的 iOS 应用程序时,我必须允许用户生成主题标签(可以在应用程序内的其他位置创建,而不仅仅是在推文正文中创建)。

我想确保任何此类主题标签对于 Twitter 都有效,因此我想错误检查输入的值是否存在无效字符。请记住,用户可能来自非英语国家。

我知道通常的限制,例如主题标签不以数字开头,也没有特殊的标点符号,但我想知道是否有一个已知的列表,列出了主题标签中技术上允许的所有其他字符(即国际字符)。

最佳答案

Karl,正如您正确指出的那样,任何语言中的任何单词都可以是有效的 Twitter 主题标签(只要它满足一些基本标准)。因此,您要求的是有效的国际单词字符列表。我确信有人在某处编制了这样的列表,但使用它并不是实现您最初目标的最有效方法:确保给定的主题标签对 Twitter 有效。

我相信,您正在寻找的是一个可以匹配 Unicode 范围内的所有单词字符的正则表达式。这样的表达式不依赖于您的区域设置,并且会匹配现代排版中可以作为单词一部分出现的所有字符。

您没有指定您编写应用程序所用的语言,因此我无法帮助您实现特定于语言的实现。但是,基本方法如下:

  1. 检查是否有任何括号表达式或字符类已支持您语言中的 Unicode 字符范围。如果是,则使用它们。

  2. 检查是否有正则表达式修饰符可以为您的语言启用Unicode 字符范围支持。

大多数现代语言都以相当相似的方式实现正则表达式,其中很多都大量借用了 Perl,所以我希望下面的两个示例能让您走上正轨:

Perl:

使用 POSIX 括号表达式(例如:[[:alpha:]][[:allnum:]][[:digit:]] 等),因为与字符类(例如:\w)相比,它们可以让您更好地控制要匹配的字符。

使用 /u 修饰符在模式匹配时启用 Unicode 支持。在此修饰符下,ASCII 平台实际上变成了 Unicode 平台;因此,例如,\w 将匹配 Unicode 中超过 100,000 个单词字符中的任何一个。

请参阅 Perl 文档以获取更多信息:

ruby :

使用 POSIX 括号表达式,因为它们包含非 ASCII 字符。例如,/\d/仅匹配 ASCII 十进制数字 (0-9);而/[[:digit:]]/匹配 Unicode Nd 类别中的任何字符。

请参阅 Ruby 文档以获取更多信息:

示例:

给定主题标签列表,以下正则表达式将匹配以单词字符(包括国际单词字符)开头的所有主题标签,后跟至少一个其他单词字符、数字或下划线:

    m/^#[[:alpha:]][[:alnum:]_]+$/u     # Perl

/^#[[:alpha:]][[:alnum:]_]+$/ # Ruby

关于twitter - Twitter 主题标签中允许使用哪些字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823376/

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