vcbeaut 发表于 2020-11-6 10:21:10

python正则

line = '"瓜瓜""嘎嘎"""""""'
a = re.findall(r'["](.*?)["]', line)

输出:
["瓜瓜""嘎嘎""""""']

正则应该怎么写,不要后面的空串呢?

fall_bernana 发表于 2020-11-6 10:27:04

本帖最后由 fall_bernana 于 2020-11-6 10:28 编辑

(.*?) 改成 (\S+?) 就可以了

kogawananari 发表于 2020-11-6 10:29:43

a = re.findall(r'["](\S+?)["]', line)

疾风怪盗 发表于 2020-11-6 10:36:59

>>> import re
>>> line = '"瓜瓜""嘎嘎"""""""'
>>> re.findall(r'"(\w+)"', line)
['瓜瓜', '嘎嘎']
>>>

vcbeaut 发表于 2020-11-6 17:39:00

疾风怪盗 发表于 2020-11-6 10:36


re.findall(r'"(.+)"', line)

输出:['瓜瓜""嘎嘎""""""']
为什么这样把空串也输出了呢?

疾风怪盗 发表于 2020-11-6 18:39:33

vcbeaut 发表于 2020-11-6 17:39
re.findall(r'"(.+)"', line)

输出:['瓜瓜""嘎嘎""""""']


你这。。。。。。
点是匹配除换行符以外的任意字符
加号是重复一次或更多次
这不是很明显么
页: [1]
查看完整版本: python正则