我正在尝试使用正则表达式来抓取聊天室中发布的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
?
答案 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