2017-06-22 77 views
-3

如何在FORTH后删除字符'。' ?删除python中的字符

对于如123.1223.123.123

我想要的输出123.1223.123

x = "207.185.152.69.2005" 
    y = 0 
    for i in x: 
    if (i == '.'): 
     y = y + 1 
      if (y == 4): 
       i.replace('.','') 
+4

'打印(X [: '' x.rfind()])' – depperm

回答

1

最优化的方式来做到这一点是

x = "207.185.152.69.2005" 
print(x[:x.rfind('.')]) 

此方法基本消除最后一次发生寻找最后出现的位置,并在该位置之后切掉所有的字符。

与depperm commant,感谢名单同意depperm

+0

你能解释我这个x [:x.rfind('。')]吗? – shashank

+1

_“最优化的方式来做到这一点”_ - 那么这一切都取决于字符串的长度。实际上,这种方法对于超过五个点的字符串将失败。不要从你的答案中拿走,但我认为使用正则表达式将是更强大的解决方案。 –

+0

@ChristianDean对于这个例子来说,字符串split/join方法的速度是正则表达式的两倍;对于以这种方式创建的字符串:'“。”。join([“g”* 10000] * 10)'这是另一种方式'。 –

3

您可以使用此正则表达式将只匹配你想要什么:

\d*\.\d*\.\d* 

这里是一些python代码,将这样做:

# IMPORT 
import re 

# SET UP REGEX 
myre = re.compile(r"\d*\.\d*\.\d*") 

# FIND MATCH 
matches = myre.findall(dataString) 

# PRINTS STRING YOUR LOOKING FOR 
print(matches[0]) 
0

拆分,切片并加入 加入((x.split() “ ”[:4]))“。”。

+0

欢迎堆栈溢出。请参阅答案窗口右上角的“帮助”,了解如何格式化代码。另外,如果你解释一些答案,它可能会有所帮助。 OP的代码有什么问题?这是如何解决它的? – Gary99