将line.replace()与空格一起使用时的Python问题

时间:2018-07-05 09:14:54

标签: python python-2.7

我目前正在处理要替换符号分号“;”的几行。带有符号“]”。我正在使用line.replace(“;”,“]”)。不知何故,当分号的位置在一行中不一致时,我发现它不起作用。

示例:

CONCAT

但是,它不适用于以下行:

input add_clk; #this one works where the output will be input add_clk]

我在脚本中使用的行是:

input sub_clk ; #tnothing change to the output, input sub_clk

不知何故,我发现此问题可能是由于分号前有空格引起的。无论如何,脚本可以忽略空格,以便将输出输入为sub_clk]吗?

2 个答案:

答案 0 :(得分:0)

您的代码在我的PC上工作正常。您可以尝试以下操作从输入中删除空格:

l = input()
if ";" in l:
    l = l.replace(";","]").replace(" ","")
print(l)

答案 1 :(得分:0)

您的代码可在我的终端上正常工作

>>> a = "input sub_clk ;"
>>> if ";" in a:
...     a = a.replace(";", "]")
... 
>>> a
'input sub_clk ]'
>>> 

您的字符串中可能有一些不可见的字符?至少在您的代码中看不到任何问题。

如果要替换分号并删除空格,可以尝试执行以下操作:

>>> import re
>>> a = "input sub_clk ;"
>>> a = a.rstrip()
>>> a = re.sub("\\s*;$","]",a)
>>> a
'input sub_clk]'