Python:如何去除单个或多个单词首尾的标点符号?
Python去除单词首尾标点(保留中间标点)的方法
方法一:利用str.strip()和string.punctuation
这是最简洁的方案,适合处理ASCII标点的场景。string.punctuation包含了所有标准ASCII标点符号,str.strip()会移除字符串首尾的这些字符。
import string word = "!.test-one,-" cleaned_word = word.strip(string.punctuation) print(cleaned_word) # 输出: test-one
方法二:正则表达式自定义匹配
如果需要处理非ASCII标点,或者要精准控制哪些标点可以保留在中间,正则表达式更灵活。下面的例子保留中间的连字符,移除首尾所有非单词、非连字符的字符:
import re word = "!.test-one,-" # 匹配开头/结尾的非单词、非连字符字符,替换为空 cleaned_word = re.sub(r'^[^\w-]+|[^\w-]+$', '', word) print(cleaned_word) # 输出: test-one
如果中间需要保留其他标点(比如句号),只需调整正则里的字符集,比如把[^\w-]改成[^\w-.]即可。
内容的提问来源于stack exchange,提问作者Shrmn
相关产品推荐
相关产品推荐

