日期:2014-05-16  浏览次数:20675 次

有趣的正则表达式问题
各位高手:

str=0000|1111|2222|3333|;

用正则表达式,去掉第二个竖线以及之前的内容。例如,str的处理结果为2222|3333|

如何实现?
------解决方案--------------------
str="0000
------解决方案--------------------
1111
------解决方案--------------------
2222
------解决方案--------------------
3333
------解决方案--------------------
"
echo ${str#*
------解决方案--------------------
*
------解决方案--------------------
}


str="0000
------解决方案--------------------
1111
------解决方案--------------------
2222
------解决方案--------------------
3333
------解决方案--------------------
"
echo $str 
------解决方案--------------------
 sed 's/[^
------解决方案--------------------
]\+
------解决方案--------------------
[^
------解决方案--------------------
]\+
------解决方案--------------------
//'


str="0000
------解决方案--------------------
1111
------解决方案--------------------
2222
------解决方案--------------------
3333
------解决方案--------------------
"
echo $str 
------解决方案--------------------
 awk -F '
------解决方案--------------------
' '{for(i=3;i<NF;i++)printf $i"
------解决方案--------------------
"}'

------解决方案--------------------
都是牛人啊。。。
------解决方案--------------------



引用:
str="0000
------解决方案--------------------
1111
------解决方案--------------------
2222
------解决方案--------------------
3333
------解决方案--------------------
"
echo ${str#*
------解决方案--------------------
*
------解决方案--------------------
}


str="0000
------解决方案--------------------
1111
------解决方案--------------------
2222
------解决方案--------------------
3333
------解决方案--------------------
"
echo $str 
------解决方案--------------------
 sed 's/[^
------解决方案--------------------
]\+
------解决方案--------------------
[^
------解决方案--------------------
]\+
------解决方案--------------------
//'


str="0000
------解决方案--------------------
1111
------解决方案--------------------
2222
------解决方案--------------------
3333
------解决方案--------------------
"
echo $str 
------解决方案--------------------
 awk -F '
------解决方案--------------------
'