English 中文(简体)
加沙地带2.x 专用图
原标题:Strip Specific Punctuation in Python 2.x

我用Aval v2.6,我有一只str子,上面有几处图形,我想去除。 现在,我看着如何使用<条码>载体.punctuation(>)的功能,但不幸的是,我要排除除完整和表单外的所有校正特征。 总而言之,只有5个校正标志,我愿意脱下——()>

任何建议? 我认为这是最有效的方式。

增 编

最佳回答
问题回答

您可以列出您不希望的特性:

unwanted = [ ( ,  ) ,  \ ,  " ,    ]

然后,您可行使<代码>trip_punctuation(s)等职能:

def strip_punctuation(s): 
    for u in unwanted: 
        s = s.replace(u,   )
    return s
>>> import re
>>> r = re.compile("[()\\ "]")
>>> r.sub("", ""hello"  (world) \\\")
 hello world 

Using string.translate :

s =     abc(de)fgh"i     
print(s.translate(None, r"()" "))
 # abcdefghi 

re.sub:

import re
re.sub(r"[\() "]",  ,s)

string.translate似乎是一个更快的幅度顺序:

In [148]: %timeit (s*1000).translate(None, r"()" ")
10000 loops, best of 3: 112 us per loop

In [146]: %timeit re.sub(r"[\() "]",  ,s*1000)
100 loops, best of 3: 2.11 ms per loop

你可以提出你想要取代的特性,代之以你们的选择。

char_replace = {" ":"" , "(":"" , ")":"" , "":"" , """:""}

for i,j in char_replace.iteritems():
        string = string.replace(i,j)
my_string = r   (""Hello   World)   
strip_chars = r   () "   

利用理解:

  .join(x for x in my_string if x not in strip_chars)

使用过滤器:

  .join(filter(lambda x: x not in strip_chars, my_string))

产出:

Hello World




相关问题
Simple JAVA: Password Verifier problem

I have a simple problem that says: A password for xyz corporation is supposed to be 6 characters long and made up of a combination of letters and digits. Write a program fragment to read in a string ...

Case insensitive comparison of strings in shell script

The == operator is used to compare two strings in shell script. However, I want to compare two strings ignoring case, how can it be done? Is there any standard command for this?

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

String initialization with pair of iterators

I m trying to initialize string with iterators and something like this works: ifstream fin("tmp.txt"); istream_iterator<char> in_i(fin), eos; //here eos is 1 over the end string s(in_i, ...

break a string in parts

I have a string "pc1|pc2|pc3|" I want to get each word on different line like: pc1 pc2 pc3 I need to do this in C#... any suggestions??

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...