【问题标题】:grep -ioP '(?<=Arguments=\")(.*)(?=":Language=)' in Bash scriptingBash 脚本中的 grep -ioP '(?<=Arguments=\")(.*)(?=":Language=)'
【发布时间】:2018-10-14 15:41:03
【问题描述】:

我正在浏览一个 bash 脚本并阅读了一行内容:

echo "Some line..." | grep -ioP '(?<=Arguments=\")(.*)(?=":Language=)'

我理解 grep 部分,即grep -ioP,但 grep 的输入,即

第一次遇到'(?&lt;=Arguments=\")(.*)(?=":Language=)'类型的表达式。

这是什么意思?这对 grep 有什么特殊意义,还是只是从 echo 字符串部分中提取相似字符串?

谢谢!

【问题讨论】:

  • 如果遇到不懂的正则表达式,regex101 这样的网站通常会很好地解释它们
  • 这是一个很酷的网站,谢谢!
  • 你的标签应该包含grep,这里你没有使用bash作为正则表达式,只用于echo
  • @cdarke,我添加了标签,但它被删除了。查看修改。

标签: regex bash grep


【解决方案1】:

这些是环视断言(?&lt;...)look-behind(前面的),(?=...)look-forward(后面的)。它们的原因是它们不是匹配的一部分,所以-o 不会输出它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多