Chinaunix

标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字! [打印本页]

作者: Myheartgon    时间: 2005-10-11 10:39
标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字!
初学正则,请都指教!问题如题,我的写法如下,可就是不出来东西,郁闷:
(例子):
my $string = "   Hello yoaopqwb axunlb \tBlahblah\n";
#我想匹配其中的axunlb
print "$1\n" if($string =~ /(.*\s^a\wb$\s.*)?/);
作者: 兰花仙子    时间: 2005-10-11 10:50
标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字!
原帖由 "Myheartgon" 发表:
初学正则,请都指教!问题如题,我的写法如下,可就是不出来东西,郁闷:
(例子):
my $string = "   Hello yoaopqwb axunlb \tBlahblah\n";
#我想匹配其中的axunlb
print "$1\n" if($string =~ /(.*\s^a\wb$\s.*..........

  1. /axunlb/
复制代码

即可
作者: Myheartgon    时间: 2005-10-11 10:52
标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字!
多谢仙子的解答,不过我不是这个意思!
我刚才说的那个只是个例子,并不是说拥护输入的刚好是那个“axunlb”,我这里只是举了个例子,我的最终目的呢还是想要个通用的pattern,来匹配所有第一次出现的以a开头b结尾的单字!你明白我的意思吗?
作者: 兰花仙子    时间: 2005-10-11 10:58
标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字!
/\s+(a\S*b)\s+/

()里就是你想要的。
作者: Myheartgon    时间: 2005-10-11 11:27
标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字!
对了,多谢!不过我还有个问题:为什么用上脱字符^和美元符号$来匹配就不行呢?
作者: 兰花仙子    时间: 2005-10-11 11:55
标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字!
[quote]原帖由 "Myheartgon"]对了,多谢!不过我还有个问题:为什么用上脱字符^和美元符号$来匹配就不行呢?[/quote 发表:


^$表示行首尾。
作者: apile    时间: 2005-10-12 08:14
标题: 求pattern:匹配输入串中第一个以a开头b结尾的单字!
用\b吧....上面的pattern碰到
abcdeb  一開始就是pattern就匹配不到了....
\ba.*?b\b
這樣比較好..給你參考..
$& 就是你要的結果...




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2