Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用re跳过一个单词_Python_Regex - Fatal编程技术网

Python 如何使用re跳过一个单词

Python 如何使用re跳过一个单词,python,regex,Python,Regex,我试图从文本文件中提取一些“单词” 部分文件文本为: 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}\

我试图从文本文件中提取一些“单词” 部分文件文本为:

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 3.99N, 1 13.02W

感谢您提供的数据:您可以在多行模式下使用字符串
^
锚定的开头

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

如果要查找以空格和数字开头的行:

pat = re.compile(r'^\s+[1-9]?[0-9]\s[0-9]\.[0-9]{2}\s[NS],.+')
                   ^^^^
^
匹配行首。
\s+
用于一个或多个空格

您不能总是相信空格的一致性,尤其是:

  • 在本例中,当您在感兴趣的行中指定
    \t

  • \tA\t37 2.61 N,  1 12.75 W
    \t37 3.99 N,  1 13.02 W
    
  • 在某些情况下,生成源数据时,较短的数字可以用空格填充,较长的数字可以减少空格以保持输出的均匀性


  • 使用泰克。我在完整文件中尝试了您的解决方案>>pat=re.compile(“(?m^\t\s[1-9]?[0-9]\s[0-9]\.[0-9]{2}\s[NS],.+”)并返回“\t 37 3.99 N,1 13.02 W”。您能解释一下(?m)的含义吗?我怎样才能避免在组中使用字符而只使用数字?