如何在python中重新格式化字符串?

时间:2011-09-08 06:11:07

标签: python

现在我有一个xxx@yyy.com@zzz.com形式的字符串,我想剥离@ zzz.com,使其显示为xxx@yyy.com

7 个答案:

答案 0 :(得分:3)

您可以使用:

"xxx@yyy.com@zzz.com".replace("@zzz.com", "")

如果你知道它总是“@ zzz.com”。

否则,您可以尝试:

data = "xxx@yyy.com@zzz.com"
if data.count("@") == 2:
    data = data.rsplit('@', 1)[0]

或者,更一般地说:

data = "xxx@yyy.com@zzz.com@___.com"
if data.count("@") > 1:
    data = data.rsplit('@', data.count("@")-1)[0]

您可以详细了解我在Python : String Methods

使用的字符串方法

答案 1 :(得分:3)

>>> 'xxx@yyy.com@zzz.com'.rpartition('@')[0]
'xxx@yyy.com'

答案 2 :(得分:1)

string = "xxx@yyy.com@zzz.com"
string = "@".join(string.split("@")[:2])

完成工作的简单方法。我认为这不是很安全。

答案 3 :(得分:0)

$ python
Python 2.6.6 (r266:84292, Nov 19 2010, 21:55:12) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> re.sub('@[^@.]*\.com$', '', 'xxx@yyy.com@zzz.com')
'xxx@yyy.com'

答案 4 :(得分:0)

string = "xxx@yyy.com@zzz.com"

print string[0:string.rfind('@')]

可以帮到你

答案 5 :(得分:0)

这样可行。请检查一下。

st='xxx@yyy.com@zzz.com'  
print st  
newstr=st[0:st.rfind('@')]  
print newstr

想法是使用rfind和strip从最后找到@符号。

答案 6 :(得分:0)

不确定此代码是否对任务来说太多了,但是现在你去了。

data = "xxx@yyy.com@zzz.com"

def cleaner(email):
   counter = 0
   result = ''
   for i in data:
      if i == "@":
        counter += 1
      if counter == 2:
        break
      result += i
   return result

data = cleaner(data)

data = 'xxx@yyy.com'

只需将数据传递给清洁功能即可。例如:cleaner(data)将返回正确的答案。

编辑:gribbler发布的内容比这个好1000倍...大声笑我还在学习:)。

data.rpartition('@')[0]