CODE:
$str="Feature=Legacy--->dns3.1";
@fea=split/[=-->]/,$str;
print $_ foreach(@fea);
ACTUAL OUTPUT: Feature
Legacy
dns3.1
但是如果值中有任何字符,例如
CODE:
$str="Feature=Legacy-system--->dns3.1";
@fea=split/[=-->]/,$str;
print $_ foreach(@fea);
OUTPUT: Feature
Legacy
System
dns3.1
但我希望输出为Feature Legacy-system dns3.1
请帮我解决一下?
答案 0 :(得分:1)
您将拆分正则表达式定义为SINGLE字符,可以是=
,-
或>
。
但您希望在=
或--->
分割。
@fea = split /=|--->/, $str;
答案 1 :(得分:0)
多部分拆分的想法很有趣,匹配是
@fea = split /=|-{1,}>/, $str;
我建议的匹配更改也是' - '字符,更改为' - {1,}'这将匹配从1到n的任意数量的' - '字符。
侧面评论,可读性对于编码人员来说通常是一个问题,所以更多的空格和foreach循环是紧凑而且不错的,但是对于其他人来说,如果他们不是超级perl程序员,那么以后会很难实现。
我从来没有以这种方式使用分割,我喜欢它,现在看起来很明显,所以即使是老式的狗狗也可以学习新的技巧,所以我感谢你。