考虑多线字符串
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"""
我可以使用什么正则表达式来获取SPLINE
和0
之上LINE
之间的所有内容?
我试过
re.findall(r'SPLINE(.*?)\s\s[0]', text, re.DOTALL)
及其许多变化使我接近,但最终不是我需要的。我认为问题仅在于正则表达式的末尾部分(\s\s[0]
部分),因为SPLINE
匹配没问题。
提出问题的另一种方法是询问我可以使用什么正则表达式来匹配两个空格,后跟整数0而没有小数点。
答案 0 :(得分:0)
相当简单,只需要添加换行符来跳过所有小数。成功的正则表达式是SPLINE(.*?)\s\s0\n
,这样
re.findall('SPLINE(.*?)\s\s0\n', text, re.DOTALL)
做了这个伎俩。