Chinaunix首页 | 论坛 | 博客
  • 博客访问: 573186
  • 博文数量: 111
  • 博客积分: 3478
  • 博客等级: 中校
  • 技术积分: 1327
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-28 22:37
文章分类

全部博文(111)

文章存档

2013年(4)

2012年(57)

2011年(15)

2010年(7)

2009年(28)

分类: LINUX

2009-07-12 23:12:34

expr 可以用来匹配字符串的长度
语法如下:
expr “string=” : ‘  ’
其中“:”号前后都有空格的否则不会起作用的。
expr match "$string" '$substring'
$substring 是一个正则表达式
expr "$string" : '$substring'
$substring 是一个正则表达
expr index $string $substring
匹配到子串的第一个字符的位置.
${string:position}
在 string 中从位置$position 开始提取子串从指定位置提取字符串这个位置多是一些数字如果$string 为"*"或"@",那么将提取从位置
$position 开始的位置参数,[1]
如果$string 为"*"或"@",那么将提取从位置$position 开始的位置参数,[1]
${string:position:length}
在 string 中从位置$position 开始提取$length 长度的子串.如果$string 参数为"*"或"@",那将最大的提取从$position 开始的$length 个位置参数.
这个意思是从某个指定位置这个问题可以是字符也可以是数字提取任意长度的字符呀 。
反向提取字符串那么我们可以用(-数字)来反向提取指定为位置的字符串啊使用圆括号或者添加一个空格来转义这个位置参数.
如果$string 参数为"*"或"@",那将最大的提取从$position 开始的$length 个位置参数.
 
经典例子:
#!/bin/bash
stringZ=abcABC123ABCabc
echo `expr "$stringZ" : 'abc[A-Z]*.2'`
echo `expr "$stringZ" : 'abc[A-Z]*.2'`
echo `expr match "$stringZ" 'abc[A-Z]*.2'`
echo `expr "$stringZ" : 'abc[A-Z]*.2'`
echo `expr index $stringZ C3`
echo ${stringZ:10}
echo ${stringZ:c:10}
echo ${stringZ:5:4}
echo ${stringZ:(-2)}

阅读(5908) | 评论(0) | 转发(0) |
0

上一篇:qmail启动故障

下一篇:正则表达式

给主人留下些什么吧!~~