Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用于字符串中名称列表的正则表达式_Python_Regex_Python 3.x - Fatal编程技术网

Python 用于字符串中名称列表的正则表达式

Python 用于字符串中名称列表的正则表达式,python,regex,python-3.x,Python,Regex,Python 3.x,测试: 输出: 1. 'Product: aab bbc; Product: xyz pqr; Junk1: jjkk jjuu; Junk2: nnnkk junk; Junk3: lkie rnier rae' 2. 'Product: Fuasdcsen' 3. 'Product: marlwaw Swwō' 4. 'Product: aab bbc abc xyz; Product: xyz pqr; Junk1: jjkk jjuu; Junk2: nnnkk junk; Junk3:

测试:

输出:

1. 'Product: aab bbc; Product: xyz pqr; Junk1: jjkk jjuu; Junk2: nnnkk junk; Junk3: lkie rnier rae'
2. 'Product: Fuasdcsen'
3. 'Product: marlwaw Swwō'
4. 'Product: aab bbc abc xyz; Product: xyz pqr; Junk1: jjkk jjuu; Junk2: nnnkk junk; Junk3: lkie rnier rae'
我只想要产品名称的列表。到目前为止,我已经提出了r'Product:\s*(*)(?:;|$)这个正则表达式,但它只适用于单个产品(案例2和案例3)。有人能为所有人提出普遍的解决办法吗。我试图从以下方面提取细节:和;(如有)

尝试使用:

In [10]: reg_str = 'Product: marlwaw Swwō xyz abc'

In [11]: re.findall(r'Product:\s*(.*)(?:;|$)', reg_str)
Out[11]: ['marlwaw Swwō xyz abc']

你可以通过在管道符号上加入一个列表来创建它。

你的正则表达式是贪婪的,这使得它从那里抓取任何它看到的东西。让它不贪婪:

reg = /(ARTIST_NAME1|ARTIST_2|ETC...)/
reg = /(ARTIST_NAME1|ARTIST_2|ETC...)/
import re

reg_str = 'Product: aab bbc; Product: xyz pqr; Junk1: jjkk jjuu; Junk2: nnnkk junk; Junk3: lkie rnier rae'

print(re.findall(r'Product:\s*(.*?)(?:;|$)', reg_str))
# ['aab bbc', 'xyz pqr']