如何制定一个特定的正则表达式

时间:2017-02-21 03:09:24

标签: regex bash grep

我正在尝试使用正则表达式来抓取聊天室中发布的gif图像。使用冒号后跟文本和/或数字来发布Gif以描述图像。聊天室就像这样设置

user1:hello i'm user1 :hi
user2::heythere1 hi user1

此示例中的Gif是:hi:heythere1

我到目前为止的正则表达式是grep -oE ':[a-zA-Z0-9]+'但是这也返回:hello,因为每个用户名后面都跟一个冒号。此示例中的:hello不是gif。只是有人打招呼。

有没有办法改变这个正则表达式,只返回:hi:heythere1

1 个答案:

答案 0 :(得分:3)

假设文本文件中的所有行都以用户名和冒号开头,你可以这样做(我使用了与你的相同的正则表达式):

cut -f2- -d: file | grep -oE ':[a-zA-Z0-9]+'

输入:

user1:hello i'm user1 :hi :h2
user2::heythere1 hi user1

输出:

:hi
:h2
:heythere1