正则表达式去除特殊字符

6
我正在寻找一个正则表达式,它可以从字符串中删除以下所有字符(以及空格): ~ % & \ ; : " ' , < > ? #。你能帮我吗?我正在使用ActionScript 3编码。

1
你能指定你使用的编程语言吗? - Thariama
哦,好的,抱歉:我正在使用ActionScript 3。 - Lotts
4个回答

4
在ActionScript中,它的语法是这样的:
yourString.replace(/[~%&\\;:"',<>?#\s]/g,"");

Perl中同样的操作:
$_ = "~ % & \\ ; : \" ' , < > ? #";
s/[~%&\\;:"',<>?#\s]//g;
print; #prints nothing

2
[~%&\\;:"',<>?#\s]+

单引号和双引号在 Perl 中不需要转义。 - Quick Joe Smith
@快点,去掉转义字符,我正在尝试在bash上使用sed。 - YOU
那样也挺公平的,因为楼主既没有指明使用什么编程语言,也没有说明所处环境。 :) - Quick Joe Smith
嗨,谢谢,我注意到如果不在结尾添加\g,它就无法正常工作。 - Lotts
@Lotts,是的,如果你需要替换所有实例,那么全局标志将需要它。 - YOU

1
使用Perl从$mystring中删除所有空格,您需要添加其他字符以创建您的正则表达式。
$mystring = "...";
$mystring =~ s/\s//g;

你怎么知道 OP 使用 Perl? - Failed_Noob
3
这只是所需解决方案的1/14,几乎可以被视为反对票。 - Quick Joe Smith

0
import re 
with open ('txt.txt', 'r') as fi: # to read ur file 
    tm = fi.read().replace(',', '\n,') # to replace " , " with \n{enter} i.e to new line
    with open ('out_3.txt','w') as z: # to crate new file wher all changes will done or we simply say that to write a new file 
        for j in tm:
            y = re.sub("[0-9 {} <> -,: _\. = +| \/]",'\n' , j)# to remove required 

正则表达式可以根据需要进行更改或修改,因为我没有将“?”作为正则表达式添加,但您可以添加如下--y = re.sub("[0-9 {} <> -,: _\.? = +| \/]",'\n' , j)有关re.sub的更多详细信息,请阅读此文档https://docs.python.org/3.1/library/re.html

for gn in y:
    z.write(gn)

导入re模块 with open('txt.txt', 'r') as fi: tm = fi.read().replace(',', '\n,') with open('out_3.txt', 'w') as z: for j in tm: y = re.sub("[0-9 {} <> -,: _. = +| /]",'\n' , j) for gn in y: z.write(gn) - Neerav Mathur Jazzy
1
我已经尝试帮助一些格式化的问题,但请检查一下,您可以使用4个空格来格式化代码,并使用'来格式化行内代码。请不要在注释中留下代码。 - Petter Friberg
StackOverflow并不要求完美的英语(否则我自己也会迷失方向)。但是你难道真的不能再努力一点吗?稍微注意一下大小写,加上一些标点符号,使用更多真正存在于英语中的单词,这样会让这篇文章变得更好。拜托了? - Yunnosch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接