Làm cách nào để viết biểu thức chính quy để sử dụng trong python để chia đoạn văn?biểu thức chính quy python để chia đoạn văn
Đoạn được xác định bằng 2 ngắt dòng (\ n). Nhưng người ta có thể có bất kỳ số lượng không gian/tab cùng với các ngắt dòng, và nó vẫn nên được coi là một đoạn văn.
Tôi đang sử dụng python để giải pháp có thể sử dụng python's regular expression syntax được mở rộng. (Có thể tận dụng (?P...)
thứ)
Ví dụ:
the_str = 'paragraph1\n\nparagraph2'
# splitting should yield ['paragraph1', 'paragraph2']
the_str = 'p1\n\t\np2\t\n\tstill p2\t \n \n\tp3'
# should yield ['p1', 'p2\t\n\tstill p2', 'p3']
the_str = 'p1\n\n\n\tp2'
# should yield ['p1', '\n\tp2']
Điều tốt nhất tôi có thể đến với là: r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*'
, ví dụ:
import re
paragraphs = re.split(r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*', the_str)
nhưng đó là xấu xí. Có gì tốt hơn không?
EDIT:
Gợi ý từ chối:
r'\s*?\n\s*?\n\s*?'
-> Điều đó sẽ làm ví dụ 2 và 3 thất bại, kể từ \s
bao gồm \n
, vì vậy nó sẽ cho phép định dạng các đoạn với hơn 2 \n
s.
Có. [^ \ S \ n] :) –