如何使用 python 从电话字符串中删除第二个“+”字符

How to remove a second '+' character from telephone string using python

例如字符串 +444401608+642055

需要删除任何“+”字符,除非“+”位于字符串的第一个位置。

最好使用 're' python 库。

+444401608+642055 -> +444401608642055

+4444+01608+642+055 -> +444401608642055

提前致谢!!

您可以使用:

foo = '+444401608+642055'
bar = foo[0] + foo[1:].replace('+', '')
print(bar)

这假定您的字符串至少有一个字符 (foo[0])。它之所以有效,是因为如果 foo[0] 不是 +,我们无论如何都可以安全地在 str.replace() 中忽略它。 foo[1:] 只是字符串从第一个字符开始的其余部分。

如果你真的想使用正则表达式,你可以使用:

import re
foo = '+444401608+642055'
bar = re.sub(r'(?<!^)\+', '', foo)
print(bar)

(?<!)是背后的负面看法。

^表示一行的开始。

\+ 按字面意思匹配字符 +

所以换句话说,寻找每个 + 没有紧跟行首的字符,并替换为 '' 或什么都不替换。

https://regex101.com/r/om6Z1j/2