Regex 在perl中使用正则表达式拆分字符串
我有一个字符串,其形式如下: $str=“30M1I20M150N20M190N50M” 已编辑:我希望拆分此字符串,以便我的输出如下所示: 30M1I20MRegex 在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)/ 看
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
# )