shell字符串处理之字符串替换、截断

本文介绍了Java中字符串的替换操作,包括单次替换、全部替换、按开头和结尾匹配替换,以及字符串截断的两种方式:指定范围和指定字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

上文我们已经讲了字符串的比较,接下来我们再来学习一下字符串的替换、截断等处理操作。

字符串替换

1. 匹配串只替换一次

stra="aabbcc123"
strb=${stra/b/s}
  • 第一个斜杠后的表示要匹配的模式串,第二个斜杠之后表示要替换后的新串
  • strb的结果为aasbcc123

2. 匹配串全部替换

stra="aabbcc123"
strb=${stra//b/s}
  • 双斜杠表示替换全部匹配,替换后的结果为aasscc123

3. 替换以某个串开头的字符串

stra="aabbcc123"
strb=${stra/#aa/sss}
  • /#表示匹配以什么开头,替换后的结果为sssbbcc123

4. 替换以某个串结尾的字符串

stra="aabbcc123"
strb=${stra/%123/sss}
  • /%表示以什么结尾,替换后的结果为aabbccsss

字符串截断

1. 指定范围截断

stra="ab.cde.fg"
strb=${stra: 3: 2}
  • 字符串起始下标位置为0,3表示从下标3开始截取,2表示截取长度为2,如果超出则截取到末尾

  • 截取结果为cd

strb=${stra: 3:}
  • 省略截取范围,表示从截取位置开始到末尾

  • 截取结果为cde.fg

2. 指定字符截断

2.1 截取指定字符右边的子串
stra="ab.cdcde.fg"
strb=${stra#*cd}
  • #表示截取操作,*是通配符,*cd表示第一次遇到cd字符就截断

  • 截断结果为cde.fg

stra="ab.cdcde.fg"
strb=${stra##*cd}
  • ##表示最后一次匹配到cd字符才会截断

  • 截断结果为e.fg

2.2 截取指定字符左边的字串

stra="ab.cdcde.fg"
strb=${stra%cd*}
  • %表示截取操作,*是通配符,表示从右到左第一次匹配到cd字符就截断

  • 截断结果为ab.cd

stra="ab.cdcde.fg"
strb=${stra%%cd*}
  • %%功能同##

  • 截断结果为ab.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值