gpt4 book ai didi

perl - 使用特定模式 sed/awk/perl 编写正则表达式

转载 作者:行者123 更新时间:2023-12-01 06:18:21 25 4
gpt4 key购买 nike

我如何使用以下任何一项(sed、awk、perl)捕获以下模式的第 1 组?

下一行的正则表达式模式是 \[(.*)\],我想捕获第 1 组,意思是 []

之间的任何内容
Processing record with rowkey [fdebae87f9b7bcb7f698a0723cd1474b3a84bbb1] with these rules

这是我想要实现的,上面一行是简单的输入。下面是简单的输出:

fdebae87f9b7bcb7f698a0723cd1474b3a84bbb1

问题更新:

实际样本输入是(抱歉省略了,不知道有必要而且有点复杂):

Processing record with rowkey [fdebae87f9b7bcb7f698a0723cd1474b3a84bbb1] with these rules [[COUNT_ALL]].

最佳答案

您遇到了贪婪问题。

因此你匹配:

fdebae87f9b7bcb7f698a0723cd1474b3a84bbb1] with these rules [[COUNT_ALL]

代替:

fdebae87f9b7bcb7f698a0723cd1474b3a84bbb1

记住:.* 匹配是贪心。 (匹配最长的可能跨度)

可能的解决方案:

  • 减少贪婪:(不适用于 sed 和 awk IIRC)
    \[(.*?)\]

  • 以旧方式减少贪婪:
    \[([^\]]*)\]

  • 只匹配单词字符:([A-Za-z_])
    \[(\w*)\]

关于perl - 使用特定模式 sed/awk/perl 编写正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9881718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com