有人能告诉我如何在连字符前后删除空格吗?下面的代码用于删除连字符之前的空格,但我需要在连字符之前和之后删除。
#!/usr/bin/python3
import re
test_strings = ["(1973)          -trailer.mp4", "(1973)-    fanart.jpg", "(1973)    -           poster.jpg"]
for i in test_strings:
        res =  re.sub(' +-', '-', i)
        print (res)发布于 2022-07-03 16:07:07
您可能可以在一个正则表达式中这样做,但是由于我有时很懒,所以只需将两个链接在一起,就像:
#!/usr/bin/python3
import re
test_strings = ["(1973)          -trailer.mp4", "(1973)-    fanart.jpg", "(1973)    -           poster.jpg"]
for i in test_strings:
    res =  re.sub('- +','-', re.sub(' +-', '-', i))
    print (res)编辑: MrGeek在评论中有一个更好的答案。
发布于 2022-07-03 16:09:48
您可以使用模式\s*-\s*,其中\s表示任何空格字符,如果严格地希望使用空格,则只需在模式中使用空格字符,即*- *。
>>> pattern = re.compile('\s*-\s*')
>>> [pattern.sub('-', item) for item in test_strings]
#output:
['(1973)-trailer.mp4', '(1973)-fanart.jpg', '(1973)-poster.jpg']https://stackoverflow.com/questions/72848021
复制相似问题