Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式匹配,非常简单:_Regex_Twitter - Fatal编程技术网

Regex 正则表达式匹配,非常简单:

Regex 正则表达式匹配,非常简单:,regex,twitter,Regex,Twitter,我希望将Twitter语法与正则表达式匹配 我如何匹配“@\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?(对于推特,我想在回复中匹配某人的姓名)@\w+ 这么简单 @[\d\w]+ \d表示数字字符 \w表示单词字符 []表示字符类 +表示字符类的多个实例的步骤 请注意,这些单词和数字字符的说明符取决于语言。检查语言规范以确保正确。继续

我希望将Twitter语法与正则表达式匹配

我如何匹配
“@\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?(对于推特,我想在回复中匹配某人的姓名)

@\w+

这么简单

@[\d\w]+
\d表示数字字符
\w表示单词字符
[]表示字符类
+表示字符类的多个实例的步骤

请注意,这些单词和数字字符的说明符取决于语言。检查语言规范以确保正确。

继续

/@(\w+)/


也可以提取匹配的名称。

需要注意的是,Twitter不再允许用户名超过15个字符,因此您还可以匹配:

@\w{1,15}
显然仍然有一些人的用户名超过15个字符,但是如果你想排除可能的误报,在15个字符上进行测试会更好


显然没有关于下划线是否可以用于用户名的开头或结尾、多个下划线等的规则,也有使用单字母名称的帐户,以及使用用户名“u”的帐户。

有一个非常广泛的API,用于如何获取有效的推特名称,Twitter提供的API的Java版本可以在github上找到。你可能想看看它,看看这是否是你可以使用的东西


我用它来验证Twitter名称,效果很好。

\w实际上包括数字,所以@\w+就足够了。另一个答案只有“\w”是最好的答案。你的w-前面需要一个\,你可能想用+,而不是*(因为没有名称的@无效)。我在那里有一个斜杠,当我将*改为+@DOK时,肯定是把它搞糟了:POSIX标准正则表达式说\w应该匹配字母数字和下划线。正如Dav所提到的,\w通常相当于[a-Za-z0-9],但值得注意的是,一些正则表达式引擎在其“单词字符”定义中还包括重音字符(即á/ê/ö等)。如果这可能会导致问题,那么最好快速测试正在使用的任何正则表达式风格。将来,在询问正则表达式问题时,记下您正在使用的方言--.NET、Perl、ECMAScript/JavaScript、,等等。有一些细微的区别。所有此解决方案都没有用处,因为如果您测试对twitter帐户无效的@或@h*之类的内容,这些内容会用上面提供的regexp标记为有效表达式,这只适用于特定的一组有效名称。它不适用于I18N名称。Twitter提供了一个非常广泛的正则表达式来处理它。@JohnYeary
Twitter提供了一个非常广泛的正则表达式来处理它
,你能提供它的链接吗?你可以在这里找到官方的Twitter正则表达式库: