我正在尝试找到一个正则表达式来抓取聊天室中发布的 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
?
最佳答案
假设文本文件中的所有行都以用户名和冒号开头,您可以这样做(我使用了与您相同的正则表达式):
cut -f2- -d: file | grep -oE ':[a-zA-Z0-9]+'
输入:
user1:hello i'm user1 :hi :h2
user2::heythere1 hi user1
输出:
:hi
:h2
:heythere1
关于regex - 如何制定特定的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42357938/