计算字符串长度

  • ${#string}
  • expr length "$string" -- string有空格时必须加双引号

    IN:var1="Hello World"
    IN:echo ${#var1}
    OUT:11

    IN:echo `expr length "$var1"`
    OUT:11

获取字符在字符串中的索引位置

  • expr index "$string" $substring

    IN:var1="quickstart is an app"
    IN:echo `expr index "$var1" start`
    OUT:6

    IN:echo `expr index "$var1" yys`
    OUT:6

并不是查找字符串的索引位置,而是查找字符的索引位置,如,按照第一个字符查找,找到则返回索引位置,找不到则找下一个字符的索引

获取子串长度

  • expr match "string" substr

    IN:var1="quickstart is an app"
    IN:echo `expr match "$var1" start`
    OUT:0

    IN:echo `expr match "$var1" quick*`
    OUT:5

    IN:echo `expr match "$var1" quick.*`
    OUT:20

必须是从头开始匹配,不然会报错

抽取子串

  • ${string:position} -- 从string中的position开始
  • ${string:position:length} -- 从position开始,匹配长度为length
  • ${string: -position} --从右边开始匹配,注意:- 之间有空格
  • ${string:(position)} -- 从左边开始匹配
  • expr substr "$string" $position $length-- 从position开始,匹配长度为length

注意:使用expr,索引计数是从1开始计算;使用${string:position},索引计数是从0开始

标签: 字符串