选择以[1]、[2]或[1.1]、[1.2]或(1)、(2)或(1.1)、(1.2)等开头并在到达下一个括号编号时结束的段落的最佳方法是什么?
我尝试使用以下代码,但这只适用于[]括号和一位数字。
positions = []
# regex to indicate the values [1] or [2] or ...
pattern = re.compile("\[\d\]") or re.compile("\(\d\)")
# find positions in the string
prev=0
for match in pattern.finditer(text):
current = text[match.span()[0]+1:match.span()[1]-1]
if int(current)-int(prev) ==1:
positions.append(match.start())
prev = current
last_item=len(positions)-1
# loop throughpositions and print
# print(positions)
for index, item in enumerate(positions):
start=item
if index != last_item:
print('--------Paragraph--------------')
# print(text[item:positions[index+1]])
finalText = text[item:positions[index+1]]
print(finalText)
else:
print('--------Paragraph--------------')
print(text[item:])
1条答案
按热度按时间rryofs0p1#
我想我会建议像this这样的东西。
总结:
^
:行起始[\[\(]
:[
或(
之一\d+
:至少一位数字.?
:可选.
\d*
:0位或更多位数字[\]\)]
:]
或)
之一