当前位置: 首页> 游戏> 手游 > 全铝家居全屋定制十大名牌_签了外包合同被辞退有补偿吗_泉州网站seo外包公司_软件开发

全铝家居全屋定制十大名牌_签了外包合同被辞退有补偿吗_泉州网站seo外包公司_软件开发

时间:2025/7/13 23:08:58来源:https://blog.csdn.net/kfepiza/article/details/143972171 浏览次数:0次
全铝家居全屋定制十大名牌_签了外包合同被辞退有补偿吗_泉州网站seo外包公司_软件开发

sed默认正则表达式的+加号和?问号表示本身,要加\反斜杠才能表示 一多匹配:\+ 和 零一匹配:\?



默认正则用\+表示一多

echo aaaaaa | sed 's/a\+/BBBBBBBBBB/g'

扩展正则用+表示一多

echo aaaaaa | sed -E 's/a+/BBBBBBBBBB/g'




sed 的默认模式下,它使用的是 POSIX 基本正则表达式(BRE,Basic Regular Expressions)。在 POSIX 基本正则表达式中,+(加号)和 ?(问号)并不具备特殊的重复或可选匹配功能,它们仅仅被视为普通字符。

具体来说:

  • +:在基本正则表达式中,它并不代表重复一次或多次。如果你尝试在 sed 的默认模式下使用 + 来表示重复,它将不会按预期工作,因为 sed 会将其视为字面意义上的加号字符。

  • ?:同样地,在基本正则表达式中,它并不代表零次或一次匹配。在 sed 的默认模式下,? 也会被当作字面意义上的问号字符来处理。

要在 sed 中使用 +? 来表示重复和可选匹配,你需要切换到扩展正则表达式(ERE,Extended Regular Expressions)。在 GNU sed(Linux 上常见的 sed 版本)中,你可以通过添加 -E--regexp-extended 选项来启用扩展正则表达式。

例如,如果你想要匹配一个或多个 a 字符,在扩展正则表达式中你可以使用 a+,而在 sed 中启用扩展正则表达式后,你可以这样写:

sed -E 's/a+/replacement/' file

同样地,如果你想要匹配零个或一个 a 字符,在扩展正则表达式中你可以使用 a?,在 sed 中启用扩展正则表达式后,你可以这样写:

sed -E 's/a?/replacement/' file

请注意,如果你使用的是非 GNU 版本的 sed,可能需要检查该版本的文档以确定是否支持 -E 选项或其他方式来启用扩展正则表达式。如果不支持,你可能需要使用其他工具(如 grep -Eawk)或寻找其他方法来实现所需的匹配。

测试

测试1

root@103vm-ubt2441d:/etc/netplan# echo aaaaaa | sed 's/a+/BBBBBBBBBB/g'
aaaaaa
root@103vm-ubt2441d:/etc/netplan# echo aaaaaa | sed 's/a\+/BBBBBBBBBB/g'
BBBBBBBBBB
root@103vm-ubt2441d:/etc/netplan# echo aaaaaa | sed -E 's/a\+/BBBBBBBBBB/g'
aaaaaa
root@103vm-ubt2441d:/etc/netplan# echo aaaaaa | sed -E 's/a+/BBBBBBBBBB/g'
BBBBBBBBBB
关键字:全铝家居全屋定制十大名牌_签了外包合同被辞退有补偿吗_泉州网站seo外包公司_软件开发

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: