Python 用条件替换(而不是删除)字符

Python 用条件替换(而不是删除)字符,python,regex,Python,Regex,如何使用replace函数替换除一个实例之外的所有实例 mystr = "he said: 'hi my name's Jim'." mystr.replace("'", '"') print(mystr) 我想要的输出是: 他说:“嗨,我叫吉姆。” 如何从替换中排除的?ie排除所有,后接s,且,前接数字/字母 如果mystr2=“'s:hi',那么我不想替换第一个”,只替换第二个“ 更新 这显示了如何删除所需的引号,而不是如何替换它。更好的方

如何使用
replace
函数替换除一个实例之外的所有实例

mystr = "he said: 'hi my name's Jim'."
mystr.replace("'", '"')
print(mystr)
我想要的输出是: 他说:“嗨,我叫吉姆。”

如何从替换中排除
?ie排除所有
后接
s
,且
前接数字/字母

如果
mystr2=“'s:hi'
,那么我不想替换第一个
,只替换第二个

更新
这显示了如何删除所需的引号,而不是如何替换它。

更好的方法是使用此正则表达式:

\B'\b|\b'\B
并替换为

  • \b
    :单词边界
  • \B
    :与
    \B
    或单词边界相反
>>重新导入
>>>他说:“嗨,我叫吉姆。”
>>>打印(re.sub(r“\B”\B |\B”\B“,”,mystr))
他说:“嗨,我叫吉姆。”。
另一个正则表达式:
'(?!s)
替换每个未后跟
s的
'

import re
mystr = "he said: 'hi my name's Jim'."
newstr = re.sub(r"'(?!s)", '"', mystr)
print(newstr)
输出:
他说:“嗨,我叫吉姆。”

在这方面,删除和替换是一样的。只需用所需的替换件替换替换件中的
。从中选择。或者。