2009-08-04 73 views
3

我正在寻找匹配Twitter语法与正则表达式。正则表达式匹配,很简单:

我该如何匹配"@______"的任何内容,即以@符号开头,后面没有空格,只有字母和数字,直到单词结尾? (为了高音喇叭,我想在回复中匹配一个人的名字)

+0

将来,在问RegEx问题时注意您使用的方言 - .NET,Perl,ECMAScript/JavaScript等等可能会很有用。有一些细微差别。 – richardtallent 2009-08-04 23:37:12

回答

6

转到了

/@(\w+)/

得到提取以及匹配的名称。

5

@\w+

那么简单吗?

+0

包含数字吗? – DOK 2009-08-04 23:09:57

+0

你需要在你面前有一个\,你可能想用+,而不是*(因为没有名字的@是无效的)。 – Amber 2009-08-04 23:10:21

+0

我在那里有一个斜杠,当我将*改为+ – 2009-08-04 23:11:41

0
@[\d\w]+ 

为一个数字字符\ d
\ W为一个字字符
[]来表示一个字符类
+来表示字符类

注意,这些的多于一个实例单词和数字字符的说明符与语言相关。检查语言规格确定。

2

应当指出的是,Twitter的不再允许用户名长度超过15个字符,所以你也可以用匹配:

@\w{1,15} 

还有明显的几个人用的用户名超过15个字符长,但在测试上如果你想排除可能的误报,15会更好。

显然没有关于下划线是否可以用于用户名,多个下划线等的开始或结束以及有单字母名称的帐户以及具有用户名“_”的人的规则。

0

没有为如何得到有效的Twitter的名字非常丰富的API,提到等由Twitter提供的API的Java版本可以在GitHub twitter-text-java找到。你可能想看看它是否可以使用。

我用它来验证Twitter名称,它工作得很好。