文本如下:
A 公司生产的 aa 产品,B 公司生产的 bb 产品,C 公司生产的 cc 产品,...
用 Python 该怎么把所有的产品名称( aa、bb、cc 等)提取出来保存为列表呢?谢谢!
(product = re.findall(r"生产的(.*),", article) 为啥不对呢?)
1
welkinzh 2018-01-01 13:21:17 +08:00
英文和中文之间有空格吧,还有逗号前面要加个反斜杠
|
2
radiocontroller 2018-01-01 13:34:28 +08:00 1
(.*?)这里加个问号(懒惰匹配)
|
3
ohmyzsh OP @radiocontroller 多谢。
|
5
Xiaobaixiao 2018-01-02 17:40:32 +08:00
(?<=生产的).+(?=产品)
|
6
ohmyzsh OP @Xiaobaixiao 试了下,您这个输出是空值
|
7
Xiaobaixiao 2018-01-03 13:15:36 +08:00
@ohmyzsh 结合 #1 #2 的 那就是:(?<=生产的\s)(.*?)(?=\s 产品)
|
8
ohmyzsh OP @Xiaobaixiao 还是空值😅
|
9
ohmyzsh OP |
10
Xiaobaixiao 2018-01-03 16:36:09 +08:00
@ohmyzsh 不会吧……
>>> article='''A 公司生产的 aa 产品,B 公司生产的 bb 产品,C 公司生产的 cc 产 品''' >>> re.findall('(?<=生产的\s)(.*?)(?=\s 产品)',article) ['aa', 'bb', 'cc'] |
11
ohmyzsh OP @Xiaobaixiao 把 re.findall('(?<=生产的\s)(.*?)(?=\s 产品)',article) 产品前的空格去掉可以了,多谢回复,新年好!
|