Python正则分割:如何忽略标题大小写实现指定字符串拆分
Python字符串分割方案
要将字符串This Is ABC Title处理成This Is, ABC, Title的格式,无需按空格分割,而是区分普通标题式单词(首字母大写、其余小写)和连续大写字母块,可以用正则表达式匹配目标片段而非直接分割:
import re original_str = "This Is ABC Title" # 匹配连续标题单词、连续大写块、单个标题单词 pattern = r'(?:[A-Z][a-z]+(?: [A-Z][a-z]+)*)|[A-Z]+|[A-Z][a-z]+' result_parts = re.findall(pattern, original_str) # 转成带逗号的字符串 formatted_str = ', '.join(result_parts) print(formatted_str) # 输出: This Is, ABC, Title
正则说明
(?:[A-Z][a-z]+(?: [A-Z][a-z]+)*):匹配一组连续的标题式单词(比如This Is),每个单词都是首字母大写、其余小写,单词间用空格分隔。(?:...)是非捕获组,仅用于分组不额外存储匹配结果。[A-Z]+:匹配连续大写的字母块(比如ABC)。[A-Z][a-z]+:匹配单个标题式单词(比如Title)。
这种方式避免了单纯用[A-Z]分割时拆分所有首字母大写单词的问题,精准提取你需要的分组。
内容的提问来源于stack exchange,提问作者Omega
相关产品推荐
相关产品推荐

