gpt4 book ai didi

regex - 为什么顺序在 sed 中的这个转义字符类中很重要?

转载 作者:行者123 更新时间:2023-12-01 10:41:15 24 4
gpt4 key购买 nike

这按预期工作:

>echo -= | sed 's/[\=\-]//g'
>

但这不是:

>echo -= | sed 's/[\-\=]//g'
>-

为什么??

最佳答案

在字符类中,- 可用于创建一个范围(例如 [A-Z],它是从 AZ 而不是三个字符 A-Z)。

因此,当您编写 [\-\=] 时,它被视为从 \\= 的范围(我不不要认为转义 = 在这里有意义)。

但是当您编写 [\=\-] 时,范围解释是不可能的,因为类的终止 ] 不能是范围的结尾。

同样,如果您编写 [-\=],您将不会对该类进行范围解释。

正如我所说,虽然我不认为转义这些字符中的任何一个是有意义的,但事实上,是什么触发了这个问题,因为 [-=] 工作相同并且没有范围问题。

以类似的方式,在字符类的开头使用 ^ 会否定该类,因此如果您想要在类中使用文字 ^,则需要 不是类中的第一个字符。

关于regex - 为什么顺序在 sed 中的这个转义字符类中很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29980544/

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