Python 正则表达式匹配字符串或字符串结尾

Python 正则表达式匹配字符串或字符串结尾,python,regex,lexer,Python,Regex,Lexer,我目前有一个正则表达式(带有多行和dotall标志): 这与此相匹配: @@:variable some nice MarkDown content blah blah @@ 如果声明是文件(字符串)中的最后一个声明,我希望能够省略closing@标记,这是因为许多文件只有一个声明,所以关闭它的想法似乎没有必要。我试过这个正则表达式: ^@@:([a-zA-Z0-9_-]*)\s*^(.*?)^(@@|\A) 但它甚至不再与带有该标记的结束标记匹配 提前感谢您的帮助。我现在已经拿到了:

我目前有一个正则表达式(带有多行和dotall标志):

这与此相匹配:

@@:variable

some nice MarkDown content blah blah

@@
如果声明是文件(字符串)中的最后一个声明,我希望能够省略closing@标记,这是因为许多文件只有一个声明,所以关闭它的想法似乎没有必要。我试过这个正则表达式:

^@@:([a-zA-Z0-9_-]*)\s*^(.*?)^(@@|\A)
但它甚至不再与带有该标记的结束标记匹配

提前感谢您的帮助。

我现在已经拿到了:

两个错误:

插入符号必须是最后一个组中第一个正则表达式的一部分,我需要\Z not \A作为\A匹配字符串的开头而不是结尾

^@@:([a-zA-Z0-9_-]*)\s*^(.*?)(^@@|\Z)
你是说
(^@@@A)
,还是说
(^@@@124;\ Z)
^@@:([a-zA-Z0-9_-]*)\s*^(.*?)(^@@|\Z)