在 Python 中保存 re.sub 中的撇号
Saving apostrophes in re.sub in Python
我只想在 Python 中使用 re.sub 命令保存普通字母和撇号,但是现在我的代码删除了撇号,所以 don't 变成了 dont 等。我可以添加“保存”我的 re.sub 命令中的撇号,还是我必须使用其他解决方案?
我现在的代码:
text = open("songs/"+artist+"/"+album+"/"+song, "r", encoding="latin-1")
lines = text.readlines()
for line in lines:
line = line.lower()
line = re.sub('[^a-z ]', '', line)
words = line.split(" ")
密码
re.sub('[^a-z ]', '', line)
正在获取所有不是 (^
) 小写 a-z
或 space
的字符,并删除它们(通过将它们替换为 ''
)
您想将撇号添加到保留的字符列表中。为此,您可以 转义 正则表达式中的 single-quote/apostrophe 字符:
re.sub('[^a-z \']', '', line)
或在正则表达式的字符串中使用双引号:
re.sub("[^a-z ']", '', line)
单独评论
顺便说一句,用变量填充字符串的现代方法是使用 f 字符串 (documentation)。而不是
"songs/"+artist+"/"+album+"/"+song
你可以使用
f"songs/{artist}/{album}/{song}"
我只想在 Python 中使用 re.sub 命令保存普通字母和撇号,但是现在我的代码删除了撇号,所以 don't 变成了 dont 等。我可以添加“保存”我的 re.sub 命令中的撇号,还是我必须使用其他解决方案?
我现在的代码:
text = open("songs/"+artist+"/"+album+"/"+song, "r", encoding="latin-1")
lines = text.readlines()
for line in lines:
line = line.lower()
line = re.sub('[^a-z ]', '', line)
words = line.split(" ")
密码
re.sub('[^a-z ]', '', line)
正在获取所有不是 (^
) 小写 a-z
或 space
的字符,并删除它们(通过将它们替换为 ''
)
您想将撇号添加到保留的字符列表中。为此,您可以 转义 正则表达式中的 single-quote/apostrophe 字符:
re.sub('[^a-z \']', '', line)
或在正则表达式的字符串中使用双引号:
re.sub("[^a-z ']", '', line)
单独评论
顺便说一句,用变量填充字符串的现代方法是使用 f 字符串 (documentation)。而不是
"songs/"+artist+"/"+album+"/"+song
你可以使用
f"songs/{artist}/{album}/{song}"