Skip to main content
 首页 » 编程设计

python之使用正则表达式匹配每行中出现的第一个模式

2025年02月15日40langtianya

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

数据 thing1 =

<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>,  

正则表达式

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

我得到的结果是每行出现两次。

['IDXG', 'IDXG', 'INVN', 'INVN', 'SWC', 'SWC', 'NE', 'NE'] 

我想要的结果只是每行中第一个与模式匹配的结果。

['IDXG', 'INVN', 'SWC', 'NE'] 

我知道如果我删除全局标签,它会在 one match. 之后停止

如果我分别执行每一行,它会给我 first match.

有没有一种优雅的方法来获取 Python 中每一行的第一次出现?

请您参考如下方法:

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

[A-Z]{1,5}(?![A-Z<]) 

Your updated link