Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 鸡蛋_Regex_Perl - Fatal编程技术网

Regex 鸡蛋

Regex 鸡蛋,regex,perl,Regex,Perl,假设: my $s1='A "sentence" ... is a concatination of nondelimiters followed by delimiters, followed by nondelimiters, followed by delimiters, ...'; 或 我尝试使用标量$d中设置的分隔符,通过regexp将其拆分为列表@a: my $d = ' ,."'; # delimiter set my @a = $s1 =~ /([^$d]+)(

假设:

my $s1='A "sentence" ... is a concatination of nondelimiters followed by delimiters,
        followed by nondelimiters, followed by delimiters, ...';

我尝试使用标量$d中设置的分隔符,通过regexp将其拆分为列表@a:

my $d = ' ,."'; # delimiter set
my @a = $s1 =~ /([^$d]+)([$d]+)/g; # gives |A| "|sentence|" ... |is| |a| |...
在第二种情况下,关于的句子可以使用

my @a = $s2 =~ /([$d]+)([^$d]+)/g; # gives |"|A| "|sentence|" ... |is| |a|...

如何用一个regexp处理这两种情况?需要帮助-请。

您需要一个连续的分隔符块或非分隔符块。只用

$s =~ /([$d]+|[^$d]+)/g;

这不起作用:my@a=$s=~/([^$d]+)([$d]+)|([$d]+)([^$d]+)/g;太好了,这就是我一直在寻找的——它工作得非常好。谢谢你,乔洛巴。
$s =~ /([$d]+|[^$d]+)/g;