如何删除单个单词/变量中的特殊字符

时间:2017-08-15 07:04:39

标签: regex perl

my $var= "File/";
$var=~ /\w/;
print "$var";

预期的结果是文件,但它确实有效。

2 个答案:

答案 0 :(得分:3)

您使用的操作符错误。匹配运算符(m/.../或正如您使用的/.../)用于匹配文本。它会告诉您字符串是否与正则表达式匹配。它根本不会改变字符串。

您想要的是替换运算符(s/.../.../)。这将匹配的文本替换为新的东西。在这种情况下,您希望用空字符串替换匹配的字符串。

my $var= "File/";
$var =~ s/\w//; # // is an empty replacement string
print "$var";

但是这仍然不正确,因为\w匹配任何单词字符(字母数字和下划线)。你需要的是\W,它匹配任何非单词字符。

my $var= "File/";
$var =~ s/\W//; # // is an empty replacement string
print "$var";

答案 1 :(得分:1)

你几乎就在那里,只使用\w代替my $var= "File/"; $var =~ s/\W+//g; print "$var";

var jsSrc = ['js/jquery-1.9.0.min.js','js/customer.js'];
gulp.task('default', function() {
    gulp.start('clean','minifyjs','revCollector');
});
gulp.task('clean', function(cb) {
    del(['minified/css', 'minified/js','rev/js','dist/'], cb)
});
gulp.task('minifyjs', function() {
    return gulp.src(jsSrc)
        .pipe(concat('main.js'))    
        .pipe(gulp.dest('dist/js'))   
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())    
        .pipe(rev())        
        .pipe(gulp.dest('dist/js')) 
        .pipe(rev.manifest())    
        .pipe(gulp.dest('dist/js')); 
});
gulp.task('revCollector', function() {
    return gulp.src(['dist/js/*.json','index.html']) 
        .pipe(revCollector({
            replaceReved: true
        })) 
        .pipe(gulp.dest('dist/')); 
});

输出为文件