我有一个这样的字符串:
component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2)
我可以删除不需要的字符并生成一个干净的字符串,如下所示:
component kw1 tap rt path to file1 kw1 path to file2 kw2
现在我想删除除kw1和kw2之外的所有内容,所以我的最终字符串应为:
kw1 kw2
谢谢。
编辑:字符串可以改变,关键字的位置(kw)也可以改变。
答案 0 :(得分:2)
这是一个很长的镜头,因为您不清楚kw1
和kw2
的特殊内容是否适用于字符串中的其他字词。
也许这适合你?
use 5.12.0;
my $s = 'component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2)';
my @keywords = $s =~ m|([^/]+?)\s*\)|g;
say for @keywords;
<强>输出强>
kw1
kw2
修改强>
如果必须就地编辑字符串很重要,则此代码使用相同的技术
use 5.12.0;
my $s = 'component.kw1_tap/rt (path/to/file1/kw1) (path/to/file2/kw2)';
$s = join ' ', $s =~ m|([^/]+?)\s*\)|g;
say $s;
<强>输出强>
kw1 kw2