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 展开
print join "\n",split(/<([^>]*)>/, $text);
/<([^>]*)>/为什么还要<>符号 它们起什么起什么作用吗
运行结果是
test with
tag1
tags
/tag1
and
b
more
/b 展开
2个回答
展开全部
/<([^>]*)>/中的<>符号不是模式匹配的元字符,没有特殊意义,只是匹配<>符号
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 。
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 。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询