Python 使用正则表达式匹配每行中的第一个模式引用

Python 使用正则表达式匹配每行中的第一个模式引用,python,regex,python-3.x,Python,Regex,Python 3.x,在Python中使用正则表达式,尝试解析下面的数据 数据内容1= <a class="screener-link-primary" href="quote.ashx?t=IDXG&amp;ty=c&amp;p=d&amp;b=1">IDXG</a>, <a class="screener-link-primary" href="quote.ashx?t=INVN&amp;ty=c&amp;p=d&amp;b=1"&g

在Python中使用正则表达式,尝试解析下面的数据

数据内容1=

<a class="screener-link-primary" href="quote.ashx?t=IDXG&amp;ty=c&amp;p=d&amp;b=1">IDXG</a>, 
<a class="screener-link-primary" href="quote.ashx?t=INVN&amp;ty=c&amp;p=d&amp;b=1">INVN</a>, 
<a class="screener-link-primary" href="quote.ashx?t=SWC&amp;ty=c&amp;p=d&amp;b=1">SWC</a>, 
<a class="screener-link-primary" href="quote.ashx?t=NE&amp;ty=c&amp;p=d&amp;b=1">NE</a>, 
我得到的结果是每行出现两次

['IDXG', 'IDXG', 'INVN', 'INVN', 'SWC', 'SWC', 'NE', 'NE']
我想要的结果只是与每行中的模式匹配的第一个匹配项

['IDXG', 'INVN', 'SWC', 'NE']
我知道如果我删除全局标记,它会在

如果我把每一行分开,它会给我

有没有一种优雅的方法可以让Python中的每一行第一次出现?

试试这个正则表达式:

pattern = "([A-Z][A-Z]{1,5}(?!\&)).*\n"
match = re.findall(pattern,thing1)

刚刚在您的第二个链接中添加了一个<:

[A-Z]{1,5}(?![A-Z<])
[A-Z]{1,5}(?![A-ZTry
pattern=“>([A-Z]{2,5})
[A-Z]{1,5}(?![A-Z<])