gpt4 book ai didi

Python 字符串清理

转载 作者:行者123 更新时间:2023-11-28 20:52:02 26 4
gpt4 key购买 nike

我正在用 PyQT 编写程序,需要处理杂乱的字符串并清理它们。可能的输入值变化很大。例如,我想使用字符串:

"Seven_Pounds_(BDrip_1080p_ENG-ITA-GER)_Multisub_x264_bluray_.mkv",  
"The_Birds_1963_HDTV_XvidHD_720p-NPW.avi",
"1892.XVID.AC3.HD.120_min.avi"

并将它们变成:
《七磅》,
《飞鸟》,
“1892”

我考虑过使用 re 来转义表达式,但对于最后一个示例,此方法似乎可能会失败。程序Media Gerbil使用 google diff-match-patch处理字符串清理的算法。这似乎是一个更好的选择,但我不确定如何实现。在 Python/PyQt 中是否有另一种更有效的字符串清理方法,或者 regex 或 diff-match-patch 是最佳途径?

最佳答案

基于你的例子:

import re

a="The_Birds_1963_HDTV_XvidHD_720p-NPW.avi"
b="Seven_Pounds_(BDrip_1080p_ENG-ITA-GER)_Multisub_x264_bluray_.mkv"
c="1892.XVID.AC3.HD.120_min.avi"

def cleanit(str):
result = []
l = re.split('[_.]',str)
flag = 0
if re.match('^[a-zA-z]+',l[0]):
flag = 1
elif re.match('^[0-9]+',l[0]):
flag = 2

if flag == 1:
for x in l:
if not re.match('^[a-zA-Z]+',x):
break;
result.append(x)
return " ".join(result)

if flag == 2:
for x in l:
if not re.match('^[0-9]+',x):
break;
result.append(x)
return " ".join(result)

if __name__ == '__main__':
print cleanit(a)
print cleanit(b)
print cleanit(c)

将打印:

kent$  python cleanit.py
The Birds
Seven Pounds
1892

关于Python 字符串清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com