试图在正则表达式

时间:2016-08-20 01:38:21

标签: regex twitter regex-lookarounds

我已经筋疲力尽了我能找到的一切,但似乎无法让它发挥作用。我有一个包含各种Twitter帖子的.txt,我试图删除除文本中提到的@handles之外的所有内容。

例如:

Row1:这是Tweet @ Handle1

的文字

第2行:此文本适用于@ Handle2和@Handle3

会导致:

第1行:@ Handle1

第2行:@ Handle2 @ Handle3

我想出了一个正则表达式来选择句柄:@[^\W]*

这适用于集合中的所有句柄,即使它们后面有一个冒号或句点而没有空格(经常发生)。

我尝试向其添加否定前瞻命令:(?!(@[^\W]*))

但我真的不知道还有什么可以让它起作用?

谢谢!

1 个答案:

答案 0 :(得分:2)

因此,您可以遍历每一行,并扫描推文句柄。

例如,

str = "This text is meant for @Handle2 and @Handle3"

str.scan(/@\w+/).to_a #=> ["@Handle2", "@Handle3"]

然后您可以根据需要操作数组。

\w是任何字母数字和下划线字符,如果您需要任何其他字符,可以修改它。