我有下面的代码,它几乎匹配了我需要的所有东西。你知道吗
import re
rx_sequence=re.compile(r"^(\d+:\s*\(\*\s*T.+)(?:\n?)((?:(?:\n|\r\n?).+)+)", re.MULTILINE)
text="""
2:(* Test #1 :: trj6tkjtkjty7ry7kyrukjkuy*)
rtjtyjtryjtrkjyryukryukrkuy
test3test3test3test3test3test3+1;
3:(* Test3:: test3test3test3test3test3 *)
Twwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwing test69test69';
tyjtdyjtdyjnrdtyntrdyntyntyn
69:(* Ttest69test69:test69test69 *)
(*test69test69test69test69test69test69test69test69test69test6940: (* Finish Test case *)
bTestDone := TRUE;
40: (* Finish Test case *)
bTestDone := TRUE;
END_CASE;
END_CASE;
(**********test10test10test10test10test10**************************)
10: (* Test10test10test10test10test10test10test10test10test10test10test10 *)
test10[test10] := 'test10';
(* petest10test10test10test10test10test10test10test10 *)
btest10test10e := TRUE;
(* Run Sih';io0;'ioh;ui;oi;io;io;anageState OF
"""
for match in rx_sequence.finditer(text):
title, sequence = match.groups()
title = title.strip()
print ("Title:\n",title)
print ("\nSequence===========================================================================================:",sequence)
print ("\n\n")
我的正则表达式与案例69的主体部分和案例10的最后一行不匹配。 我一直在努力想出一个正则表达式,匹配一切,但没有运气。。。我不知道下一步该怎么办。你知道吗
您可以更新模式的第二部分,使其与以下行相匹配,这些行不是以开始时匹配的模式开始的。你知道吗
关于第二部分
(?:\r?\n(?!^\d+:\s*\(\*\s*T).*)*
(?:
非捕获群\r?\n
(?!^\d+:\s*\(\*\s*T)
如果右边的不是表示开始的模式.*
匹配除换行符以外的任何字符0+次)*
关闭非捕获组Regex demo
如果希望总共有两个组,也可以将第二部分包装在一个捕获组中。你知道吗
regex demo with 2 capturing groups
相关问题 更多 >
编程相关推荐