相关疑难解决方法(0)

如何替换字符串的多个子串?

我想使用.replace函数来替换多个字符串.

我现在有

string.replace("condition1", "")
Run Code Online (Sandbox Code Playgroud)

但是想要有类似的东西

string.replace("condition1", "").replace("condition2", "text")
Run Code Online (Sandbox Code Playgroud)

虽然那感觉不是很好的语法

这样做的正确方法是什么?有点像grep/regex你可以做什么\1,\2并将字段替换为某些搜索字符串

python text replace

247
推荐指数
13
解决办法
33万
查看次数

使用替换词典替换字符串的最简单方法是什么?

考虑..

dict = {
'?????':'?????',
'russianA':'englishA'
}

s = '????? russianA'
Run Code Online (Sandbox Code Playgroud)

我想用它们各自的dict值替换所有dict键s.

python regex

71
推荐指数
4
解决办法
6万
查看次数

php的strtr for python

php具有以下strtr 功能:

strtr('aa-bb-cc', array('aa' => 'bbz', 'bb' => 'x', 'cc' => 'y'));
# bbz-x-y
Run Code Online (Sandbox Code Playgroud)

它用相应的值替换字符串中的字典键,并且(重要)不替换已经替换的字符串.一个天真的尝试在python中编写相同的东西:

def strtr(strng, replace):
    for s, r in replace.items():
        strng = strng.replace(s, r)
    return strng

strtr('aa-bb-cc', {'aa': 'bbz', 'bb': 'x', 'cc': 'y'})
Run Code Online (Sandbox Code Playgroud)

回报xz-x-y不是我们想要的(bb再次被替换).如何更改上面的函数,使其行为像它的PHP对应?

(如果可能的话,我更喜欢没有正则表达式的答案).

Upd:这里有一些很棒的答案.我计时他们发现,对于短串Gumbo的版本似乎是最快的,在更长的字符串上,赢家是re解决方案:

# 'aa-bb-cc'
0.0258 strtr_thg
0.0274 strtr_gumbo
0.0447 strtr_kojiro
0.0701 strtr_aix

# 'aa-bb-cc'*10
0.1474 strtr_aix
0.2261 strtr_thg
0.2366 strtr_gumbo
0.3226 strtr_kojiro
Run Code Online (Sandbox Code Playgroud)

我自己的版本(稍微优化了Gumbo):

def strtr(strng, replace):
    buf, i = [], 0
    while i < len(strng):
        for …
Run Code Online (Sandbox Code Playgroud)

python string

7
推荐指数
3
解决办法
2384
查看次数

搜索并用文件中的单词替换数字

我有一个包含数字和字母的文件,我想将所有数字替换为单词(例如,8 转换为 8)。好吧,我只是没有办法检查我的文件中是否有数字。做到这一点的最佳有效方法是什么?

python regex search replace file

2
推荐指数
1
解决办法
5851
查看次数

如何在Python中用字典替换字符串?

如何更改stringresult

string = 'John and Mary are good friends'
d = {'John': 'Sam', 'Mary': 'Ann', 'are': 'are not'}

result = 'Sam and Ann are not good friends'
Run Code Online (Sandbox Code Playgroud)

谢谢。

python

-1
推荐指数
1
解决办法
48
查看次数

标签 统计

python ×5

regex ×2

replace ×2

file ×1

search ×1

string ×1

text ×1