我正在寻找一种基于SocialBakers数据创建Twitter @handles列表的简单方法(复制/粘贴到TextMate中)。
我已经尝试使用以下RegEx,我在StackOverflow上找到了它,但不幸的是它不能按照我想要的方式工作:
^(?!.*@([\w+])).*$
虽然上面的表达式删除了没有@handles的所有行,但我希望RegEx删除@handle之前和之后的所有内容以及没有@handles的行。
示例:
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
期望的结果:
@katyperry
@justinbieber
@taylorswift13
提前感谢您的帮助!
答案 0 :(得分:0)
这样的事情:
cat file | perl -ne 'while(s/(@[a-z0-9_]+)//gi) { print $1,"\n"}'
如果你的行中包含多个@handles,这也会有用。
答案 1 :(得分:0)
Twitter处理正则表达式为@\w+
。因此,要删除其他所有内容,您需要匹配并捕获模式并使用对此捕获组的反向引用,然后匹配任何字符:
(@\w+)|.
使用DOTALL模式也匹配换行符号。替换为$1
(或\1
,具体取决于您使用的工具。
请参阅demo
答案 2 :(得分:0)
<div class="container">
<div class="row">
<div class="col-md-4 vessel-card">
<a href="cienfuegos-from-havana.html" class="special-departure">
<img src="http://placehold.it/350x150">
</a>
<h3>Vessel: Panorama</h3>
<div class="departure-card">
<p>Havana to Cienfuegos starting at $5,999
<a href="#" class="btn btn-explore">Explore</p></a>
</div>
<div class="departure-card">
<p>Havana to Cienfuegos starting at $5,999
<a href="cienfuegos-from-havana.html" class="btn btn-explore">Explore</p></a>
</div>
</div>
</div>
</div>
以上将搜索和任何给定和排除的右括号。
@.*[^)]
上面这里在Caret文本编辑器中做同样的事情。
获取用户名:
@.*\b
只是句柄:
$ awk '/@.*/ {print}' test
katyperry KATY PERRY (@katyperry)
justinbieber Justin Bieber (@justinbieber)
taylorswift13 Taylor Swift (@taylorswift13)
查看测试文件:
$ awk -F "(" '/@.*/ {print$2}' test | sed 's/)//g'
@katyperry
@justinbieber
@taylorswift13
Bash版本:
$ 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