gpt4 book ai didi

regex - 如何在 ack 输出中使用命名的正则表达式组?

转载 作者:行者123 更新时间:2023-12-04 00:48:41 24 4
gpt4 key购买 nike

假设我有一个包含以下内容的 foo.txt 文件:

[2010-11-13 12:00:02,656]
[2010-11-13 12:00:02,701]
[2010-11-13 12:00:02,902]

当我 ack对于具有以下内容的日期部分,它有效:
ack "(?P<foo>\d{4}-\d{2}-\d{2})" foo.txt --output "\$1"

2010-11-13
2010-11-13
2010-11-13

但是当我尝试使用 --output 时使用命名组“foo”,我无法让它工作:
ack "(?P<foo>\d{4}-\d{2}-\d{2})" foo.txt --output "(?P=foo)"

(?=foo)
(?=foo)
(?=foo)

任何帮助都非常感谢。非常感谢。

最佳答案

ack "(?P<foo>\d{4}-\d{2}-\d{2})" foo.txt --output "\$+{foo}"
(?P=foo)仅适用于正则表达式(它是 \1 的命名等价物)。 $+{foo}$1 的命名等价物.

此外,对于大多数 shell,单引号将帮助您避免额外的反斜杠:
ack '(?P<foo>\d{4}-\d{2}-\d{2})' foo.txt --output '$+{foo}'

关于regex - 如何在 ack 输出中使用命名的正则表达式组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4222727/

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