如何在Perl中使用其他分隔符?

时间:2012-02-01 05:58:57

标签: regex perl

如果PATTERN包含m!PATTERN!个字符,我可以使用/

我也可以在split /PATTERN/,EXPR,LIMIT中使用这种方式吗?

3 个答案:

答案 0 :(得分:6)

简而言之,答案是肯定的。

试一试:

my @array = split m!/!, '1/2/3/4/5';

答案 1 :(得分:4)

各种形式的split确实是:

  • split MATCHOP,EXPR,LIMIT
  • split PATTERN,EXPR,LIMIT
  • split MATCHOP,EXPR
  • split PATTERN,EXPR
  • split MATCHOP
  • split PATTERN
  • split

其中

  • MATCHOP是一个匹配运算符(通常不会执行)和
  • PATTERN是一个返回以下内容之一的表达式:
    • 由单个空格组成的字符串。
    • 已编译的正则表达式
    • 字符串形式的正则表达式模式

所有这些都是功能相同的:

$re = qr/\s+/;
$pat = '(?^u:\\s+)';

split /\s+/          Match operator
split m/\s+/         Match operator
split m!\s+!         Match operator

split qr/\s+/        Expression that returns a compiled regex pattern.
split qr!\s+!        Expression that returns a compiled regex pattern.
split $re            Expression that returns a compiled regex pattern.

split '(?^u:\s+)'    Expression that returns a stringified regex pattern.
split '(?^u:\\s+)'   Expression that returns a stringified regex pattern.
split "(?^u:\\s+)"   Expression that returns a stringified regex pattern.
split $pat           Expression that returns a stringified regex pattern.

答案 2 :(得分:1)

不了解m!PATTERN! ...您可以使用'Pattern' .. 即分裂('',EXPR,LIMIT)