+ -
当前位置:首页 → 问答吧 → 获取字符串问题

获取字符串问题

时间:2011-07-12

来源:互联网

cat a.txt

........
<item>hello</item>
........

我想要获取<item>和</item>之间的结果,即hello,求帮忙

作者: lzx4456   发布时间: 2011-07-12

  1. sed -r 's#.*>(.*)</.*#\1#' urfile
复制代码

作者: Shell_HAT   发布时间: 2011-07-12

  1. perl -ne 'if($_=~/<(.*)>(.*)<(.*)>/){print "$2\n"}' a.txt
复制代码

作者: linux_kim   发布时间: 2011-07-12

回复 Shell_HAT


    能用正则里面环视来实现吗,我试了白天,不行,呵呵

作者: jack1007   发布时间: 2011-07-12

回复 jack1007


#cat urfile
<item>hello</item>
#sed -r 's#.*>(.*)</.*#\1#' urfile
hello

作者: Shell_HAT   发布时间: 2011-07-12

我知道你的这个可以,这个就是向后引用,我想知道怎么用正则里面的环视来匹配呢
我写的这个匹配不出来
  1. # sed -n '/(?<=cd).*(?=cd)/p' file1
  2. # cat file1
  3. abcdXXXcdfkg
复制代码
按道理说,能匹配出来这行的吧,就是cd之间的字符串

作者: jack1007   发布时间: 2011-07-12

回复 jack1007


sed里面支持的正则不像perl那样丰富多彩

作者: Shell_HAT   发布时间: 2011-07-12



QUOTE:
我知道你的这个可以,这个就是向后引用,我想知道怎么用正则里面的环视来匹配呢
我写的这个匹配不出来按道 ...
jack1007 发表于 2011-07-12 15:51




$ echo 'abcdXXXXcdfkg' | grep -oP '(?<=cd).+(?=cd)'
XXXX

作者: jason680   发布时间: 2011-07-12

热门下载

更多