Python正则表达式将(A)(B)(C)(D)拆分为新行

2024-10-02 16:31:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个正则表达式把选项分成新行

(?P<qn>^\d+)\s*?\.(?P<qt>.*?)\s*?(?P<A>A\s*?\..*?)\n*?(?P<B>B\s*?\..*?)\n*?(?P<C>C\s*?\..*?)\n*?(?P<D>D\s*?\..*?)\n*(?=\Z)

https://www.regex101.com/r/hP0nX4/2

14.下列牙齒外傷,何者最易發生牙髓壞死?

A.震盪(concussion) 
B.半脫臼(subluxation) 
C.凸出性脫位(extrusive luxation) 
D.內縮性脫位(intrusive luxation)

15  .藥物在正常使用下,何種藥品對
Enterococcus faecalis 的殺菌效果通常最快?
A.2.5%次氯酸鈉(NaOCl) B.0.5%chlorhexidine C.2%iodine/4%potassium iodide D.氫氧化鈣(Ca(OH)2)

16  .有關根管治療時使用EDTA移除塗抹層(smear      layer)之敘述,下列何者錯誤?
A.臨床上常使用的EDTA濃度為27% B.其作用為EDTA與牙本質碎屑中的鈣離子螯合(chelating),來幫助移除塗抹層 C.EDTA可深入牙本質小管約50µm D.EDTA與次氯酸鈉(NaOCl)併用可移除塗抹層

第14题的格式很好,第15题和第16题的格式不好。你知道吗

我的正则表达式只匹配一个问题,如何使它匹配所有问题。 把所有的选择分成新的一行?你知道吗


我的预期产出是:

14.下列牙齒外傷,何者最易發生牙髓壞死?

A.震盪(concussion) 
B.半脫臼(subluxation) 
C.凸出性脫位(extrusive luxation) 
D.內縮性脫位(intrusive luxation)

15  .藥物在正常使用下,何種藥品對
Enterococcus faecalis 的殺菌效果通常最快?
A.2.5%次氯酸鈉(NaOCl) 
B.0.5%chlorhexidine 
C.2%iodine/4%potassium iodide 
D.氫氧化鈣(Ca(OH)2)

16  .有關根管治療時使用EDTA移除塗抹層(smear      layer)之敘述,下列何者錯誤?
A.臨床上常使用的EDTA濃度為27% 
B.其作用為EDTA與牙本質碎屑中的鈣離子螯合(chelating),來幫助移除塗抹層
C.EDTA可深入牙本質小管約50µm 
D.EDTA與次氯酸鈉(NaOCl)併用可移除塗抹層

Tags: intrusive藥品edtasubluxationluxation牙齒外傷藥物
2条回答

在“Enterococcus”前面有一个新行,与.不匹配。您可以添加修饰符s,使.也与新行匹配。你知道吗

请注意,换行符仍将出现在结果中。你知道吗

只需用换行符重绘BCD.之前的空格。你知道吗

re.sub(r'\s+(?=[BCD]\.)', '\n', s)

DEMO

示例:

>>> s = '''14.下列牙齒外傷,何者最易發生牙髓壞死?

A.震盪(concussion) 
B.半脫臼(subluxation) 
C.凸出性脫位(extrusive luxation) 
D.內縮性脫位(intrusive luxation)

15  .藥物在正常使用下,何種藥品對
Enterococcus faecalis 的殺菌效果通常最快?
A.2.5%次氯酸鈉(NaOCl) B.0.5%chlorhexidine C.2%iodine/4%potassium iodide D.氫氧化鈣(Ca(OH)2)

16  .有關根管治療時使用EDTA移除塗抹層(smear      layer)之敘述,下列何者錯誤?
A.臨床上常使用的EDTA濃度為27% B.其作用為EDTA與牙本質碎屑中的鈣離子螯合(chelating),來幫助移除塗抹層 C.EDTA可深入牙本質小管約50µm D.EDTA與次氯酸鈉(NaOCl)併用可移除塗抹層'''

>>> print(re.sub(r'\s+(?=[BCD]\.)', '\n', s))
14.下列牙齒外傷,何者最易發生牙髓壞死?

A.震盪(concussion)
B.半脫臼(subluxation)
C.凸出性脫位(extrusive luxation)
D.內縮性脫位(intrusive luxation)

15  .藥物在正常使用下,何種藥品對
Enterococcus faecalis 的殺菌效果通常最快?
A.2.5%次氯酸鈉(NaOCl)
B.0.5%chlorhexidine
C.2%iodine/4%potassium iodide
D.氫氧化鈣(Ca(OH)2)

16  .有關根管治療時使用EDTA移除塗抹層(smear      layer)之敘述,下列何者錯誤?
A.臨床上常使用的EDTA濃度為27%
B.其作用為EDTA與牙本質碎屑中的鈣離子螯合(chelating),來幫助移除塗抹層
C.EDTA可深入牙本質小管約50µm
D.EDTA與次氯酸鈉(NaOCl)併用可移除塗抹層

相关问题 更多 >