在数组中搜索和替换

Cha*_*hak 0 regex perl replace

假设我有一个具有以下数据的数组

@array = ('/root/level1','/root/level2',
          '/root/level1/level2','/root/level1/level2/level3')
Run Code Online (Sandbox Code Playgroud)

我想循环遍历这个数组并用它的最后一个单词替换每个元素

@array = ('level1','level2','level2','level3')
Run Code Online (Sandbox Code Playgroud)

我对正则表达式不好,任何人都可以帮忙吗?

Gur*_*uru 5

使用拆分和地图:

@array=map{(split(/\//,$_))[-1]}@array;
Run Code Online (Sandbox Code Playgroud)

使用正则表达式:

@array=map{m|.*/(.*)|}@array;
Run Code Online (Sandbox Code Playgroud)