gpt4 book ai didi

regex - 为什么 [0-9]+ 不匹配 "123"中的 "123 abc"与 sed?

转载 作者:行者123 更新时间:2023-12-01 09:27:18 24 4
gpt4 key购买 nike

我试过-

echo "abc 456" | sed 's/[0-9]+/& &/'

并期待“abc 456 456”,但它只是打印“abc 456”。

[0-9]+ 不是应该找到“1 个或多个”数字吗?

此外,如果我尝试-

echo "abc 456" | sed 's/[0-9]*/& &/'

它打印“abc 456”。注意 abc 之前的空格。这是否意味着第一个字符是数字?

最佳答案

不使用 -r 标志到 sed,它使用 BRE 语法而不是 ERE。 + 是一个 ERE 扩展。

echo "abc 456" | sed -r 's/[0-9]+/& &/'

至于另一个问题分支:* 匹配 0 个或多个字符,所以

echo "abc 456" | sed 's/[0-9]*/& &/'

...根本不需要任何数字存在(实际上能够匹配空字符串),因此它不会透露任何有关起始位置是否被视为数字的信息。

关于regex - 为什么 [0-9]+ 不匹配 "123"中的 "123 abc"与 sed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385033/

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