正则表达式的小问题

pilgrim_kevin
正则表达式的小问题

在用PCRE写一个正则表达式的程序。对正则表达式不太熟,请教一下:

比如说:

我要在"I am [color=Red]20[/color] years old"里检索出"20"这个位置的值,
or 在"This is [color=Red]Peter[/color]'s computer"中检索出"Peter"这个位置的字符串,

怎么做?

[[i] 本帖最后由 pilgrim_kevin 于 2008-7-1 19:36 编辑 [/i]]

walkerxk
echo I am 20 years old|grep -o '[0-9]/{2/}'
echo "This is Peter's computer"|sed "s/'.*//;s/.* //"
其实具体看你的情况的,否则直接echo 20和echo Peter

pilgrim_kevin
[quote]原帖由 [i]walkerxk[/i] 于 2008-7-1 20:49 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8714157&ptid=1185962][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
echo I am 20 years old|grep -o '[0-9]/{2/}'
echo "This is Peter's computer"|sed "s/'.*//;s/.* //"
其实具体看你的情况的,否则直接echo 20和echo Peter [/quote]

谢谢。回头我试试。grep/sed的正则表达式的表示方法与libpcre库是一样的吧?

walkerxk
libpcre没听过,不同的工具的RE都会有点不同的比如:
echo ab|perl -pe 's/(.)(.)//2/1/'
echo ab|sed 's//(./)/(./)//2/1/'