私はこのファイルを持っています
line 1
line 2
line 3
line 4
line 5
line 6
line 1
からへline 3
の行き方
私は試した:
print re.match(r'(.*)^$', lines, re.MULTILINE).groups()
しかし、私は得る:
AttributeError: 'NoneType' object has no attribute 'groups'
これには正規表現を使用しません。行を反復して空白で停止するか、区切り文字としてsplit
使用するだけのほうがはるかにクリーンです(IMO)。'\n\n'
複雑な正規表現を使用するsplit
よりも、6 か月後にこのコードに戻ったときに読みやすくなるため、この方法をお勧めします。
s = '''line 1
line 2
line 3
line 4
line 5
line 6'''
lines = []
for line in s.split('\n'): # just for line in file if you're reading from a file
if line:
lines.append(line)
else: # Empty line: stop looking
break
print(lines) # >>> ['line 1', 'line 2', 'line 3']
print(s.split('\n\n')) # >>> ['line 1\nline 2\nline 3', 'line 4\nline 5\nline 6']
視覚的に、「空白」行まで行を取得したい場合は、この正規表現でそれを行う必要があります。
修飾子はまったく必要ありません。
// (?:[^\S\n]*(?:\S+[^\S\n]*)+(?:\n|$))+
(?:
[^\S\n]*
(?: \S+ [^\S\n]* )+
(?: \n | $ )
)+