\0在sed中是什么意思?
What does \0 mean in sed?
我有以下代码:
echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*//p"
它按预期打印 12
,因为 </code> 指的是第一个捕获组。</p>
<p>但是,如果使用 <code>[=13=]
而不是 </code>,则输出为 <code>12. Chapter Name
,打印整个输入字符串。
似乎只要正则表达式找到匹配项,[=13=]
就会打印整个输入字符串。这是正确的吗?
我是 运行 Debian 10.2。
[=12=]
是整个匹配值的占位符。
请注意,在 POSIX 正则表达式模式中,捕获组索引以 1
开始,一直上升到 9
。第零组是整场比赛。
另外,在 sed
中使用 &
比 [=12=]
更常见,而且可能更便携。
echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/[=10=]/p"
等于
echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/&/p"
您可以在 Using &
as the matched string 阅读更多关于 &
的信息。
我有以下代码:
echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*//p"
它按预期打印 12
,因为 </code> 指的是第一个捕获组。</p>
<p>但是,如果使用 <code>[=13=]
而不是 </code>,则输出为 <code>12. Chapter Name
,打印整个输入字符串。
似乎只要正则表达式找到匹配项,[=13=]
就会打印整个输入字符串。这是正确的吗?
我是 运行 Debian 10.2。
[=12=]
是整个匹配值的占位符。
请注意,在 POSIX 正则表达式模式中,捕获组索引以 1
开始,一直上升到 9
。第零组是整场比赛。
另外,在 sed
中使用 &
比 [=12=]
更常见,而且可能更便携。
echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/[=10=]/p"
等于
echo "12. Chapter Name" | sed -n -E "s/([0-9]{2})\.[[:space:]].*/&/p"
您可以在 Using &
as the matched string 阅读更多关于 &
的信息。