使用 ripgrep 搜索 start/end 个单词

search start/end of word with ripgrep

使用 grep 我可以使用

搜索单词的开头和结尾
grep -e '\<leg\>' <where to search>

这会找到 I have a leg. 但不会找到 play allegro here

Ripgrep (0.10.0) 好像不支持这种正则表达式的写法。因此我的问题是:

如何 "grep" 出现在带有 ripgrep 的单词的 begin/end 处?

ripgrep 不支持 \<\> 单词边界,它们分别只匹配单词的开头和结尾。然而,ripgrep 确实支持 \b,它匹配任何地方的单词边界。在这种情况下,对于您的具体示例来说已经足够了:

$ echo 'play allegro here' | rg '\bleg\b'
$ echo 'I have a leg.' | rg '\bleg\b'
I have a leg.    

ripgrep 还支持 grep 的 -w 标志,在这种情况下它有效地做同样的事情:

$ echo 'play allegro here' | rg -w leg
$ echo 'I have a leg.' | rg -w leg
I have a leg.