我试图从一段文本中获取所有单词对。
我有以下正则表达式 (\w+) +(\w+)
我在一段没有标点符号的文本上运行。我的问题是这没有考虑所有可能的对
$ echo "hello dear world" | grep -Eoi "(\w+) +(\w+)"
hello dear
我想要以下$ echo "hello dear world" | grep -Eoi [some expression]
hello dear
dear world
最佳答案
传统 grep
不会返回捕获组。
你可以考虑pcregrep
具有前瞻和 2 个捕获组:
echo "hello dear world" | pcregrep -o1 -o2 '(\w+)(?=(\h+\w+))'
hello dear
dear world
如果您没有 pcregrep
那么你可以使用这个简单的awk
:awk '{for (i=1; i<NF; ++i) print $i OFS $(i+1)}' <<< "hello dear world"
hello dear
dear world
关于正则表达式匹配所有单词对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69122559/