gpt4 book ai didi

regex -\0 在 sed 中是什么意思?

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

我有以下代码:

echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/\1/p"

它打印 12正如预期的那样,因为 \1指第一个捕获组。

但是,如果 \0用于代替 \1 ,输出为 12. Chapter Name ,打印整个输入字符串。

似乎只要正则表达式找到匹配, \0打印整个输入字符串。它是否正确?

我正在运行 Debian 10.2。

最佳答案

\0是整个匹配值的占位符。

请注意,捕获组索引以 1 开头直到9在 POSIX 正则表达式模式中。第零组是整场比赛。

此外,而不是 \0 ,使用 & 更常见——而且可能更便携——在 sed .

echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/\0/p"

等于
echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/&/p"

您可以阅读更多关于 & 的信息在 Using & as the matched string .

关于regex -\0 在 sed 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62123031/

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