我在answer这个正则表达式上找到了两个字符之间的字符串。在我的情况下,我想找到‘
和’
之间的每个模式。这是正则表达式:
(?<=‘)(.*?)(?=’)
事实上,当我在https://regex101.com/上尝试时,它会起作用。
问题是我想将它与grep
一起使用,但它不起作用:
grep -E '(?<=‘)(.*?)(?=’)' file
有什么遗漏吗?
答案 0 :(得分:2)
这些都是积极向前看,并且看待断言。您需要使用PCRE(Perl Compatible Regex)启用它,并且最好只使用GNU -o
中的grep
选项获取匹配的部分:
grep -oP '(?<=‘)(.*?)(?=’)' file