有一个下面的输出,想删除空白和换行符。
\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]]
答案 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())