如何在python中删除字符串中的特定空格。
我的输入字符串是:,
str1 = """vendor_id\t: GenuineIntel
cpu family\t: 6
model\t\t: 58
model name\t: Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz
stepping\t: 9
cpu MHz\t\t: 2485.659
cache size\t: 6144 KB
fpu\t\t: yes
fpu_exception\t: yes
cpuid level\t: 5
wp\t\t: yes"""
我要求的输出是:
>>>print str1
vendor_id: GenuineIntel
cpu family: 6
model: 58
model name: Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz
stepping: 9
cpu MHz: 2485.659
cache size: 6144 KB
fpu: yes
fpu_exception: yes
cpuid level: 5
wp: yes
答案 0 :(得分:5)
看起来你想从行的开头删除空格,并删除冒号之前的所有空格。使用正则表达式:
import re
re.sub(r'(^[ \t]+|[ \t]+(?=:))', '', str1, flags=re.M)
这会在行的开头选择空格和制表符(^[ \t]*
,^
是行的开头,[ \t]
是空格或制表符,+
是1或者更多),或它会在冒号前面挑出空格和制表符([ \t]+
是1个或多个空格和制表符,(?=:)
表示:
必须遵循但不包含在拾取的内容中,然后用空字符串替换这些空格和制表符。 flags=re.M
用于确保模式适用于每一行。
演示:
>>> import re
>>> str1 = """vendor_id\t: GenuineIntel
... cpu family\t: 6
... model\t\t: 58
... model name\t: Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz
... stepping\t: 9
... cpu MHz\t\t: 2485.659
... cache size\t: 6144 KB
... fpu\t\t: yes
... fpu_exception\t: yes
... cpuid level\t: 5
... wp\t\t: yes"""
>>> print re.sub(r'(^[ \t]+|[ \t]+(?=:))', '', str1, flags=re.M)
vendor_id: GenuineIntel
cpu family: 6
model: 58
model name: Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz
stepping: 9
cpu MHz: 2485.659
cache size: 6144 KB
fpu: yes
fpu_exception: yes
cpuid level: 5
wp: yes
如果您的输入字符串不具有前导空格(并且您只是自己缩小示例以使其看起来排成一行),那么您要删除的所有内容都是标签:
str1 = str1.replace('\t', '')
并完成它。
答案 1 :(得分:2)
我不知道“随机”是什么意思,但您可以删除所有标签:
str1 = str1.replace("\t", "")
答案 2 :(得分:0)
这将解决你的答案:
str1 = """vendor_id\t: GenuineIntel
cpu family\t: 6
model\t\t: 58
model name\t: Intel(R) Core(TM) i3-3120M CPU @ 2.50GHz
stepping\t: 9
cpu MHz\t\t: 2485.659
cache size\t: 6144 KB
fpu\t\t: yes
fpu_exception\t: yes
cpuid level\t: 5
wp\t\t: yes"""
arr = [line.strip() for line in str1.split('\n')]
for line in arr:
print line.strip()
答案 3 :(得分:0)
def invitation_ics():
text = f"""BEGIN:VCALENDAR
CLASS:PUBLIC
STATUS:CONFIRMED
"""
retunr text
out not tab
BEGIN:VCALENDAR
CLASS:PUBLIC
STATUS:CONFIRMED
答案 4 :(得分:-1)
str1 = str1.replace("\t", "").replace(" ", "")
它会首先替换标签然后替换空格。