在Python中使用正则表达式,尝试解析下面的数据。
数据事项1 =
<a class="screener-link-primary" href="quote.ashx?t=IDXG&ty=c&p=d&b=1">IDXG</a>,
<a class="screener-link-primary" href="quote.ashx?t=INVN&ty=c&p=d&b=1">INVN</a>,
<a class="screener-link-primary" href="quote.ashx?t=SWC&ty=c&p=d&b=1">SWC</a>,
<a class="screener-link-primary" href="quote.ashx?t=NE&ty=c&p=d&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中首次出现每一行?
答案 0 :(得分:1)
答案 1 :(得分:0)
试试这个正则表达式:
pattern = "([A-Z][A-Z]{1,5}(?!\&)).*\n"
match = re.findall(pattern,thing1)