Perl的这个模式匹配中的<>有什么用?

$text="testwith<tag1>tags</tag1>and<b>more</b>";printjoin"\n",split(/<([^>]*)>/,$text... $text = "test with <tag1>tags</tag1> and <b>more</b>";
print join "\n",split(/<([^>]*)>/, $text);

/<([^>]*)>/为什么还要<>符号 它们起什么起什么作用吗
运行结果是
test with
tag1
tags
/tag1
and
b
more
/b
展开
 我来答
翟毅君
2016-09-14 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:128
采纳率:100%
帮助的人:45.5万
展开全部
/<([^>]*)>/中的<>符号不是模式匹配的元字符,没有特殊意义,只是匹配<>符号
split函数是perl语言借鉴java.lang包中有String.split()方法
split(separator,$word);
separator 参数,字符串或正则表达式,从该参数指定的地方分割 $word。
返回值
1、一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 $word分割成子串创建的。返回的数组中的字串不包括 separator 自身。
2、但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。例如本题中/<([^>]*)>/返回()中匹配的内容:tag1 tags /tag1 b /b。()是必需的,()里面匹配的内容作为返回值。
参考资料:

在列表上下文中,匹配运算符返回括号中匹配的表达式的各个部分的一个列表。每个加
括号的值都是列表的返回值,如果模式不包含括号,则返回 1。请看下面这个例子:
$_="apple is red";
($fruit,$color)=/(.*)\sis\s(.*)/;

在上面这个代码段中,该模式先对任意对象(作为一个组)进行匹配,然后对白空间进行匹配,再对单词 i s 进 行 匹 配 , 然 后 匹 配 更 多 的 白 空 间 , 再 对 任 意 对 象 ( 也 作 为 一 个 组 ) 进 行
匹配。这两个分组的表达式返回左边的列表,并赋予 $ f r u i t 和 $ c o l o r 。
百度网友c9e795dda
2016-09-14 · TA获得超过5167个赞
知道大有可为答主
回答量:1128
采纳率:0%
帮助的人:1151万
展开全部
不然呢? 那你想要甚麼结果 ? 如果你就是想要这样的结果, 这样写没问题呀... <> 没有甚麼特别, 只是字符而已, 跟 'a', 'b', 'c' 无异...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式