我需要从以下rows_string变量获取字母字符串:

'Equity & 1,638 & \\$3,227,305 & \\$2,649,208 & \\$3,270,402 & \\$3,114,298 & \\$3,173,369 & \\$2,978,769 & \\$3,016,161 & \\$2,807,840\\\\\nFixed Income & 420 & \\$765,856 & \\$661,395 & \\$824,603 & \\$792,579 & \\$794,224 & \\$783,793 & \\$719,307 & \\$630,298\\\\\nCommodities & 119 & \\$72,911 & \\$66,302 & \\$81,649 & \\$81,633 & \\$79,296 & \\$76,450 & \\$64,136 & \\$63,667\\\\\nAsset Allocation & 63 & \\$10,190 & \\$9,275 & \\$10,684 & \\$10,089 & \\$10,371 & \\$9,829 & \\$9,619 & \\$8,880\\\\\nAlternatives & 55 & \\$5,601 & \\$6,023 & \\$6,715 & \\$6,279 & \\$6,365 & \\$6,645 & \\$6,757 & \\$6,243\\\\\nCurrency & 34 & \\$311 & \\$2,014 & \\$1,665 & \\$1,743 & \\$1,683 & \\$1,666 & \\$1,722 & \\$2,058\\\\\nTOTALS & 2,329 & \\$4,082,173 & \\$3,394,217 & \\$4,195,718 & \\$4,006,620 & \\$4,065,308 & \\$3,857,151 & \\$3,817,700 & \\$3,518,986\\\\'


因此,例如,我需要以下列表:

[Equity, Fixed Income, Commodities, Asset Allocation, Alternatives, Currency, Total]


我试过了:

re.findall(r'\\\\\n(\w+.*?) &', rows_string)


很好,但是省略了"equity"变量
还给我这个字符串变量的空列表

'Starting Portfolio & sell & 21.39\\% & -0.91\\% & 1.52\\% & 9.29\\% & 9.72\\% & 14.89\\% & 38.21\\% & 55.4\\% &  & 90.86\\%\\\\'


所以对于第二个字符串,我需要['Starting Portfolio', 'sell']
我想要的是抓住字符串变量中\\\\\n之后的第一项和'&'之前的第一项。谢谢

最佳答案

您只是缺少一个\。您不是在搜索字母\n,而是在搜索换行符。因此,只需在正则表达式的开头添加广告\。此外,您还缺少自声明以来的第一个条目,即单词以\\\\\n开头。要获得第一个,您可以使用例如^(\w+.*?)|[\\\\\n](\w+.*?) &

09-28 10:02