我试图从文本文件中提取一些“单词” 部分文件是:
Predicted XXX Area (NM): 88,0644
A 37 2.61 N, 1 12.75 W
XXX Track Vertices:
37 3.99 N, 1 13.02 W
感兴趣的线
\tA\t37 2.61 N, 1 12.75 W
\t37 3.99 N, 1 13.02 W
我应用以下模式
pat = re.compile(r'\s\s[1-9]?[0-9]\s[0-9]\.[0-9]{2}\s[NS],.+')
matcher = re.search(pat,text)
溶胶:
37 2.61 N, 1 12.75 W
如何使用正则表达式跳过第一行并按如下方式捕获第二行?
37 3.99N, 1 13.02W
由于
答案 0 :(得分:1)
取消您提供的数据:您可以在多行模式下使用字符串^
锚点的开头。
>>> import re
>>> s = '''Predicted XXX Area (NM): 88,0644
A 37 2.61 N, 1 12.75 W
XXX Track Vertices:
37 3.99 N, 1 13.02 W'''
>>> p = re.compile(r'^\s+([1-9]?[0-9]\s[0-9]\.[0-9]{2}\s[NS],.+)', re.M)
>>> re.search(p, s).group(1)
'37 3.99 N, 1 13.02 W'
答案 1 :(得分:1)
如果您要查找以空格和数字开头的行:
pat = re.compile(r'^\s+[1-9]?[0-9]\s[0-9]\.[0-9]{2}\s[NS],.+')
^^^^
^
匹配行首。 \s+
用于一个或多个空格。
您不能总是相信空白的一致性,尤其是:
在这种情况下,当您在感兴趣的行中指定\t
时
在某些情况下,生成源数据时,可以用空格填充较短的数字,较长的数字会减少空格以使输出看起来均匀。