求Python正则表达式:按空格分割字符串但保留括号内内容
Python正则表达式实现特定字符串分割
要实现将格式如'I love hjk(d, k, l) and hjk(d, k, l).'的字符串分割为['I', 'love', 'hjk(d, k, l)', 'and', 'hjk(d, k , l)'],可以用re.findall()结合针对性正则表达式提取目标内容(直接分割难以保留带括号的完整单元)。
实现代码
import re target_str = 'I love hjk(d, k, l) and hjk(d, k , l).' split_result = re.findall(r'\w+\([^)]+\)|\w+', target_str) print(split_result)
正则表达式说明
\w+\([^)]+\):匹配完整的带括号表达式(比如hjk(d, k, l)):\w+:匹配括号前的标识符(由字母、数字、下划线组成);\(:匹配左括号;[^)]+:匹配括号内除右括号外的所有内容(包含空格、逗号等);\):匹配右括号。
|:逻辑或,匹配两种模式中的任意一种;\w+:匹配普通英文单词(如I、love)。
运行代码后,输出结果即为目标列表:['I', 'love', 'hjk(d, k, l)', 'and', 'hjk(d, k , l)']
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

