用于匹配'0'且没有小数点的Python正则表达式

时间:2016-08-10 01:30:43

标签: python regex

考虑多线字符串

text = """SPLINE
        8                                     # <------ everything from here
0
       70
    12
       71
     2
       72
     8
       73
     5
       42
   0.1000000000000000E-08
       43
   0.1000000000000000E+01
       40
   0.1000000000000000E+01
       40
   0.1157776718684309E+01
       41
   0.9237223003012139E+00
       20
  -0.3529600706727810E+02                     # <--------- to here
  0
LINE
        8
0
       10
   0.1069999999749793E+02
       20
  -0.3165748401599828E+02
       30
   0.0000000000000000E+00
  0
ARC"""

我可以使用什么正则表达式来获取SPLINE0之上LINE之间的所有内容?

我试过

re.findall(r'SPLINE(.*?)\s\s[0]', text, re.DOTALL)

及其许多变化使我接近,但最终不是我需要的。我认为问题仅在于正则表达式的末尾部分(\s\s[0]部分),因为SPLINE匹配没问题。

提出问题的另一种方法是询问我可以使用什么正则表达式来匹配两个空格,后跟整数0而没有小数点。

1 个答案:

答案 0 :(得分:0)

相当简单,只需要添加换行符来跳过所有小数。成功的正则表达式是SPLINE(.*?)\s\s0\n,这样

re.findall('SPLINE(.*?)\s\s0\n', text, re.DOTALL)

做了这个伎俩。