gpt4 book ai didi

Python 正则表达式不匹配某些文本

转载 作者:行者123 更新时间:2023-12-01 07:01:28 26 4
gpt4 key购买 nike

我有以下代码,几乎匹配我需要的一切。

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")

我的正则表达式与 case 69 的某些主体和 case 10 的最后一行不匹配。我一直在尝试想出一个匹配所有内容的正则表达式,但没有运气......我不知道下一步该做什么。

最佳答案

您可以更新模式的第二部分,以匹配以下不以开头匹配的模式开头的行。

^(\d+:\s*\(\*\s*T.+)(?:\r?\n(?!^\d+:\s*\(\*\s*T).*)*

关于第二部分(?:\r?\n(?!^\d+:\s*\(\*\s*T).*)*

  • (?: 非捕获组
    • \r?\n
    • (?!^\d+:\s*\(\*\s*T) 如果右边的不是表示开始的模式
    • .* 匹配任意字符 0 次以上(换行符除外)
  • )* 关闭非捕获组

Regex demo

如果您想总共有 2 个组,您还可以将第二部分包装在捕获组中。

regex demo with 2 capturing groups

关于Python 正则表达式不匹配某些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58615605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com