perl用正则怎样匹配字符串里两个name:后面的内容? name:123 name:234 只想获取123和234
展开全部
PHP的正则是源自Perl且大体兼容Perl的。我手上只装了PHP。
<?php
$s="perl用正则怎样匹配字符串里两个name:后面的内容?\nname:123 name:234 只想获取123和234 \n name:567";
preg_match_all('/name:(?<id>\d+)/m',$s,$m);
var_dump($m['id']);
========
输出
array
0 => string '123' (length=3)
1 => string '234' (length=3)
2 => string '567' (length=3
值得注意就是你给的name后面的冒号是全角的':',我这里也是按这个全角符号写的。
<?php
$s="perl用正则怎样匹配字符串里两个name:后面的内容?\nname:123 name:234 只想获取123和234 \n name:567";
preg_match_all('/name:(?<id>\d+)/m',$s,$m);
var_dump($m['id']);
========
输出
array
0 => string '123' (length=3)
1 => string '234' (length=3)
2 => string '567' (length=3
值得注意就是你给的name后面的冒号是全角的':',我这里也是按这个全角符号写的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
my @names = split /\W*names?\W*/i, 'name:123 name:234';
更多追问追答
追问
貌似不行呢?
文本内容
id : 1
name : zzz
id : 2
name : yyy
现在只想得到zzz和yyy,放在两个变量里
追答
my @names;
while () {
next unless /^name\s*:\s*(\S+)/;
push @names, $1;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个大写字符必须在行首吗?
在行首:^[A-Z][^A-Z]+$
不确定在行首:^([^A-Z]+)?[A-Z]([^A-Z]+)?$
^_^
在行首:^[A-Z][^A-Z]+$
不确定在行首:^([^A-Z]+)?[A-Z]([^A-Z]+)?$
^_^
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询