我有一个regex表达式,它应该匹配一些文件中某些段落的开头。当我在文件的较小版本上运行它时,它会起作用,但是当我在整个文件上运行它时,它会在第4个匹配项上选择一个被排除的\r,我不知道为什么。你知道吗
方法如下:
def getRowTitles(self):
rowNames = []
pattern = r'([^\r].{1,4}\(.*?\)[^_]*?)'
count = 0
found = re.search(pattern, self.read)
toLoopThrough = self.read
while found:
rowNames.append(found.group().strip())
count = toLoopThrough.find(found.group())
toLoopThrough = toLoopThrough[count + len(found.group()):]
found = re.search(pattern, toLoopThrough)
return rowNames
文件的开头如下所示:
Average per group sum per group n per group stdev per group Log 2 p-value Individual Areas normalised by weight
WT OX WT OX WT OX WT OX OX/WT WT OX
脂质极性@保留时间类别C1378 C1383 C1387 C1513 C1377 C1381 C1382 C1389 C1397 C1519
p值为<;0.05的脂质
心磷脂
CL(23:4/24:1/20:3/18:1)_邮箱:NEG@43.978CL心磷脂心磷脂58259.7396 108709.9208 233038.9584 652259.5249 4 6 29064.41359 19088.852 0.899912448 0.030160222 3.56E+04 9.88E+04 5.99E+04 3.88E+04 9.92E+04 1.18E+05 1.14E+05 1.31E+05 7.55E+04 1.15E+05
鞘糖脂
Cer(d18:2/22:1)_邮箱:NEG@45.079Cer鞘糖脂神经酰胺73771.99705 172457.0264 295087.9882 1034742.159 4 6 23692.94535 68679.54864 1.225091714 0.015442582 7.77E+04 7.05E+04 4.47E+04 1.02E+05 1.49E+05 3.01E+05 1.85E+05 1.04E+05 1.35E+05 1.60E+05
中性甘油脂
DG(16:0/22:6)_邮箱:45.696DG中性甘油脂二甘油三酯1970578.151 620552.4835 7882312.604 3723314.901 4 6 642432.36 508282.8967-1.666993829 0.01447318 1.53E+06 1.69E+06 2.92E+06 1.74E+06 1.18E+06 3.25E+05 1.03E+06 1.53E+05 1.01E+06 2.57E+04
甘油三酯(16:1/16:1/18:2)_邮箱:52.725甘油三酯中性甘油脂甘油三酯205875394.4 129414602.1 823501577.5 776487612.3 4 6 21098256.62 66163733.32-0.669771005 0.036476709 2.03E+08 1.84E+08 2.35E+08 2.02E+08 1.69E+08 1.26E+08 1.72E+08 1.33E+08 1.75E+08 1.36E+06
如果该文件仅与此摘录一样长,则该方法将返回一个类似于['CL(23:4/24:1/20:3/18:1)'、'Cer(d18:2/22:1)'、'DG(16:0/22:6)'、'TG(16:1/16:1/18:2)'”的列表,但如果该文件较长,则会出错并给出['CL(23:4/24:1/20:3/18:1)'、'Cer(d18:2/22:1)'、'DG(16:0/22:6)'、'04\rTG(16:1/18:2)']
如果有人知道这些案子有什么不同,那会非常有帮助。你知道吗
你可以试试基本的诊断方法
试着这样开始。你知道吗
(?m-s)^(.{1,5}\(.*?\))
省去
[^_]*?
,因为它说除非必须匹配,否则不要匹配任何东西。你知道吗这里是上面没有使用修饰语。你知道吗
(?:^|\r?\n)([^\r\n]{1,5}\([^\r\n]*?\))
或者,通用版本
(?:^|\r?\n|\r)([^\r\n]{1,5}\([^\r\n]*?\))
相关问题 更多 >
编程相关推荐