如何在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('.','')
如何在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('.','')
最优化的方式来做到这一点是
x = "207.185.152.69.2005"
print(x[:x.rfind('.')])
此方法基本消除最后一次发生寻找最后出现的位置,并在该位置之后切掉所有的字符。
与depperm commant,感谢名单同意depperm
你能解释我这个x [:x.rfind('。')]吗? – shashank
_“最优化的方式来做到这一点”_ - 那么这一切都取决于字符串的长度。实际上,这种方法对于超过五个点的字符串将失败。不要从你的答案中拿走,但我认为使用正则表达式将是更强大的解决方案。 –
@ChristianDean对于这个例子来说,字符串split/join方法的速度是正则表达式的两倍;对于以这种方式创建的字符串:'“。”。join([“g”* 10000] * 10)'这是另一种方式'。 –
您可以使用此正则表达式将只匹配你想要什么:
\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])
拆分,切片并加入 加入((x.split() “ ”[:4]))“。”。
欢迎堆栈溢出。请参阅答案窗口右上角的“帮助”,了解如何格式化代码。另外,如果你解释一些答案,它可能会有所帮助。 OP的代码有什么问题?这是如何解决它的? – Gary99
'打印(X [: '' x.rfind()])' – depperm