如何利用正则表达式反选引号外文本,获取给定字符串中带有引号的内容之外的文本?

ID:19768 / 打印

如何利用正则表达式反选引号外文本,获取给定字符串中带有引号的内容之外的文本?

正则表达式反选引号外文本

问题:

如何利用正则表达式反选给定字符串中带有引号的内容之外的文本,得到以下结果?

['1', '2', '5', '6', '9', '0']

答案:

方法 1:删除带有引号的文本,再以逗号分割

先使用正则表达式将带有引号的文本删除,然后用逗号分割字符串:

a = '"3,4",1,2,"3,4","3,4",5,6,"7,8",9,0,"3,4"' result = re.sub('(?:".*?",?|,".*?")', '', a).split(',') print(result)

方法 2:匹配不包含逗号和引号的文本

使用正则表达式匹配以逗号分割的文本,但排除包含逗号和引号的文本:

result = re.findall('(?<![^,])[^,"]*(?![^,])', a) print(result)

方法 3:匹配引号之外的文本,再过滤掉未带引号的文本

先使用正则表达式匹配包含引号的文本和不包含引号的文本,然后过滤掉未带引号的文本:

result = [m[1] for m in re.finditer('(?:".*?"|(.*?))(?:,|$)', a) if m[1]] print(result)
上一篇: DRF 如何对匿名用户进行限流?
下一篇: 如何使用Python启动独立进程并让它们在脚本结束后继续运行?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。