获取文本单词之间的单词和字符

And*_*dré 0 regex perl

我有一个文本,例如

my $text = "share your knowledge, Q&A-style"
Run Code Online (Sandbox Code Playgroud)

并希望在列表中获取它们之间的单词字符.如果我使用

my (@parts) = $text =~ /(\w+)/g
Run Code Online (Sandbox Code Playgroud)

我明白了

("share", "your", "knowledge", "Q", "A", "style")
Run Code Online (Sandbox Code Playgroud)

现在我想得到以下列表:

("share", "your", "knowledge", ",", "Q", "&", "A", "-", "style")
Run Code Online (Sandbox Code Playgroud)

有没有办法在字符旁边循环遍历文本?

Håk*_*and 5

通过split在括号中使用并放置正则表达式,它也将返回分隔符.然后使用以下方法删除空白部分(仅包含空格)grep:

use strict;
use warnings;

my $text = "share your knowledge, Q&A-style";
my @parts =  grep { /\S/ } split /(\w+)/, $text;
Run Code Online (Sandbox Code Playgroud)