我经常使用包含以下字符的utf-8文本:
\ xc2 \ x99
\ xc2 \ x95
\ xc2 \ x85
等等
这些字符使我使用的其他库感到困惑,因此需要替换。
什么是有效的方法,而不是:
text.replace('\xc2\x99', ' ').replace('\xc2\x85, '...')
总是有正则表达式;只需在方括号内列出所有令人反感的字符,如下所示:
import re
print re.sub(r'[\xc2\x99]'," ","Hello\xc2There\x99")
打印:’Hello There’,用空格替换不需要的字符。
或者,如果每个字符都有不同的替换字符:
# remove annoying characters
chars = {
'\xc2\x82' : ',', # High code comma
'\xc2\x84' : ',,', # High code double comma
'\xc2\x85' : '...', # Tripple dot
'\xc2\x88' : '^', # High carat
'\xc2\x91' : '\x27', # Forward single quote
'\xc2\x92' : '\x27', # Reverse single quote
'\xc2\x93' : '\x22', # Forward double quote
'\xc2\x94' : '\x22', # Reverse double quote
'\xc2\x95' : ' ',
'\xc2\x96' : '-', # High hyphen
'\xc2\x97' : '--', # Double hyphen
'\xc2\x99' : ' ',
'\xc2\xa0' : ' ',
'\xc2\xa6' : '|', # Split vertical bar
'\xc2\xab' : '<<', # Double less than
'\xc2\xbb' : '>>', # Double greater than
'\xc2\xbc' : '1/4', # one quarter
'\xc2\xbd' : '1/2', # one half
'\xc2\xbe' : '3/4', # three quarters
'\xca\xbf' : '\x27', # c-single quote
'\xcc\xa8' : '', # modifier - under curve
'\xcc\xb1' : '' # modifier - under line
}
def replace_chars(match):
char = match.group(0)
return chars[char]
return re.sub('(' + '|'.join(chars.keys()) + ')', replace_chars, text)
问题内容: 对于穷人在客户端上实现近似排序规则正确排序的实现,我需要一个JavaScript函数,该函数可以 有效地 替换字符串中的单个字符。 这就是我的意思(请注意,这适用于德语文本,其他语言则有不同的排序方式): 基本上,我需要将给定字符串的所有出现的“ä”替换为“ a”(依此类推)。这样,本机排序的结果将非常接近用户的期望(或数据库将返回的结果)。 其他语言也具有执行此操作的功能:Pytho
问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要
我有一个作为字符串传入的句子,我正在对单词“and”进行替换,我想用“”替换它。它并没有用空白代替“和”。下面是我的逻辑示例。当我调试这个的时候,逻辑就落在句子里了。代替 这里有我遗漏的东西吗。
问题内容: 我正在编写一个小型JAVA程序,该程序: 将文本作为字符串 需要2个字符数组 我试图做的事情听起来像是“查找并替换”,但是并不相同,因此我认为清除它很重要。 无论如何,我想获取此文本,查找第一个数组中的任何字符是否与文本中的字符匹配,如果是,则将其替换为第二个字符数组中的匹配字符(根据索引)。 我将举一个例子来说明:假设我的文本(字符串)是:“ java很棒!”;我有2个数组(char
问题内容: 我希望将文本“REPLACEME”替换为我的StringBuffer符号。当我打印符号时,它是一个有效的字符串。当我打印查询时,它仍然具有文本REPLACEME而不是符号。为什么? 问题答案: 更改 至: Java中的字符串被设计为不可变的。 这就是为什么不能替换当前字符串 中 的字符,因此它必须返回替换了字符的 新 字符串。 此外,如果你想简单地替换文字,不需要正则表达式的语法支持使
问题内容: 一些背景信息:我们使用的是一个古老的基于Web的文档数据库系统,几乎完全由带有“正常”扩展名(.doc,.xls,.ppt)的MS Office文档组成。它们都是基于某种任意ID号(即1245.doc)命名的。我们正在切换到SharePoint,我需要重命名所有这些文件并将它们分类到文件夹中。我有一个包含各种信息的CSV文件(例如,哪个ID号对应于哪个文档的标题),因此我正在使用它来重