Perl:除了空格之外的所有内容都会拆分字符串

时间:2014-05-18 14:25:05

标签: regex perl split whitespace inverse

我希望用空格分割字符串。

示例:

假设我有一个字符串:

"The    quick  brown fox    jumps over   the lazy dog"

我想拆分它并获得以下空格字符串列表:

["    ", "  ", " ", "    ", " ", "   ", " ", " "]

你能告诉我怎么做吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用\S分割,这意味着匹配任何非空白字符。

my @list = split /\S+/, $string;

或者更好的是,只需匹配您的空白而不必分割。

my @list = $string =~ /\s+/g;

答案 1 :(得分:1)

\S分裂任何非空格。 但是,如果要包含选项卡和换行符,则应使用(单字符空格)。很可能你想要的是\S hwnd提供的。

my $string = q{The    quick  brown fox    jumps over   the lazy dog};
my @values = split /[^ ]+/, $string;

答案 2 :(得分:0)

为什么不只是寻找空格而不是用非空格字符分割?
pattern = (\s+) Demo