Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 在perl中使用正则表达式拆分字符串_Regex_Perl_Split - Fatal编程技术网

Regex 在perl中使用正则表达式拆分字符串

Regex 在perl中使用正则表达式拆分字符串,regex,perl,split,Regex,Perl,Split,我有一个字符串,其形式如下: $str=“30M1I20M150N20M190N50M” 已编辑:我希望拆分此字符串,以便我的输出如下所示: 30M1I20M 150N 20米 190N 50米 但是当我试着 @split_str=split(/(\d+)N/,$str) 我得到: 30M1I20M 150 20米 190 50米 如您所见,N在结果中被省略(150190而不是150N和190N)。谁能告诉我该怎么办?谢谢大家! 尝试以下操作(未测试): 将N放入捕获组中 /(\d+N)/ 看

我有一个字符串,其形式如下:

$str=“30M1I20M150N20M190N50M”

已编辑:我希望拆分此字符串,以便我的输出如下所示:

30M1I20M
150N
20米
190N
50米

但是当我试着

@split_str=split(/(\d+)N/,$str)

我得到:

30M1I20M
150
20米
190
50米

如您所见,N在结果中被省略(150190而不是150N和190N)。谁能告诉我该怎么办?谢谢大家!

尝试以下操作(未测试):

将N放入捕获组中

/(\d+N)/


split/(?你的例子没有意义:如果你在N上分割,你得到的N是:30M1I20M150N、20M190N和50M。我有什么错吗?你可以按照答案中的建议,把N放在捕获组中,或者只是把它重新连接到strings上。我猜你也在试图得到“M”我相信它?看。但我重复我自己。
/(\d+N)/
split /(?<=[NM])/, '30M1I20M150N20M190N50M'
# returns
# qw(
#     30M
#     1I20M
#     150N
#     20M
#     190N
#     50M
# )