首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用RegEx从文本中提取Twitter @handles?

如何使用RegEx从文本中提取Twitter @handles?
EN

Stack Overflow用户
提问于 2016-02-05 19:24:37
回答 3查看 773关注 0票数 1

我正在寻找一种简单的方法来创建基于SocialBakers数据(复制/粘贴到TextMate中)的Twitter @handles列表。

我试过使用下面的RegEx,它是我在StackOverflow上找到的,但不幸的是,它不是我想要的方式:

代码语言:javascript
复制
^(?!.*@([\w+])).*$

虽然上面的表达式删除了所有没有@handle的行,但我希望RegEx删除@handle前后的所有内容以及没有@handles的行。

示例:

代码语言:javascript
复制
1
katyperry KATY PERRY (@katyperry)
Followings 158
Followers 82 085 596
Rating
5
Worst012345678910Best
2
justinbieber Justin Bieber (@justinbieber)
254 399
74 748 878
2
Worst012345678910Best
3
taylorswift13 Taylor Swift (@taylorswift13)
245
70 529 992

期望的结果:

代码语言:javascript
复制
@katyperry
@justinbieber
@taylorswift13

提前感谢您的帮助!

EN

回答 3

Stack Overflow用户

发布于 2016-02-05 19:41:30

如下所示:

代码语言:javascript
复制
cat file | perl -ne 'while(s/(@[a-z0-9_]+)//gi) { print $1,"\n"}'

如果您有多个@handles的行,这也是有效的。

票数 0
EN

Stack Overflow用户

发布于 2016-02-05 19:41:52

Twitter句柄正则表达式是@\w+。因此,要删除所有其他内容,您需要匹配并捕获模式,并使用对此捕获组的反向引用,然后只匹配任何字符:

代码语言:javascript
复制
(@\w+)|.

使用DOTALL模式也可以匹配换行符。替换为$1 (或\1,取决于您使用的工具)。

请参阅demo

票数 0
EN

Stack Overflow用户

发布于 2016-02-05 19:59:59

在Caret中测试的海峡REGEX:

代码语言:javascript
复制
@.*[^)]

上面将搜索任何给定的和排除右括号。

代码语言:javascript
复制
@.*\b

上面的代码在Caret文本编辑器中做同样的事情。

如何使用awk和sed:

还可以获取用户名:

代码语言:javascript
复制
$ awk '/@.*/ {print}' test
katyperry KATY PERRY (@katyperry)
justinbieber Justin Bieber (@justinbieber)
taylorswift13 Taylor Swift (@taylorswift13)

只有句柄:

代码语言:javascript
复制
$ awk -F "(" '/@.*/ {print$2}' test | sed 's/)//g'
@katyperry
@justinbieber
@taylorswift13

A查看测试文件:

代码语言:javascript
复制
$ cat test
1
katyperry KATY PERRY (@katyperry)
Followings 158
Followers 82 085 596
Rating
5
Worst012345678910Best
2
justinbieber Justin Bieber (@justinbieber)
254 399
74 748 878
2
Worst012345678910Best
3
taylorswift13 Taylor Swift (@taylorswift13)
245
70 529 992

Bash版本:

代码语言:javascript
复制
$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin14)
Copyright (C) 2007 Free Software Foundation, Inc.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35222957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档