我有一个字符串需要按照特定字符进行分割。但是,只有当该字符两侧都是数字时,才需要在该字符处进行分割。该字符在字符串的其他位置也存在,但至少一侧是字母。我尝试使用以下方法(以"x"作为所需字符): my @array = split /\dx\d/, $string; 然而,这个函数会删除"x"和两侧的数字。如果可能的话,我想保留数字。有什么想法吗?
你可以先用一个独特的字符替换你想要分割的字符,然后在这个独特的字符上进行分割,就像这样:$string =~ s/(\d)x(\d)/\1foobar\2/g; my @array = split /foobar/, $string;
x
的实例不会在数字之前。您可以通过负断言来实现这一点(以匹配字符串开头和结尾的x
):/(?<!\D)x(?!\D)/
,但它当然无法匹配所述问题。 - Marcelo Cantos"x123"
中,x
被数字包围,但这有点牵强。 - Marcelo Cantos