如何从python中的字符串中删除空格,换行符等

时间:2018-08-18 23:01:43

标签: python python-2.7

有一个下面的输出,想删除空白和换行符。

\n', '    var [3:0] apple [1:0];\n', '    int mango;\n', '    float banana [5:0];\n', '    int lichi;\n', '  

我尝试了以下两个代码,但均无法正常工作。有任何评论/更正吗?

print str(str(re.sub('[^A-Za-z0-9[:]]+[\r\n]+', ' ', str(match_group_t[i]))))
print re.sub(r"(?<=[a-z])\r?\n"," ", match_group_t[i]) 

删除您的评论以进行更正!

预期输出为:仅 var [3:0] apple [1:0], int mango, float banana [5:0], int lichi.这样我就可以将类型和名称分别存储在数组中,以后再使用。喜欢

variable data in an array: [apple, var, lelem, [3:0], rleme, [1:0]]

2 个答案:

答案 0 :(得分:1)

您可以在re.sub中使用表达式:

(?:[;\n']|\s{2,})
  • (?:非捕获组
    • [;\n']字符;\n'
    • |
    • \s{2,}空格,两个或多个。
  • )关闭非捕获组。

Python代码:

import re
mystr = "\n', '    var [3:0] apple [1:0];\n', '    int mango;\n', '    float banana [5:0];\n', '    int lichi;\n', '  "

print(re.sub(r"(?:[;\n']|\s{2,})",r'',mystr)[2:])

打印所需的输出:

var [3:0] apple [1:0], int mango, float banana [5:0], int lichi, 

答案 1 :(得分:0)

考虑使用内置的isspace而不是正则表达式。

newstring = ''.join(ch for ch in oldstring if not ch.isspace())