我正在使用正则表达式匹配pattern like this:
\AX.*(?:\r?\n[KLM].*)*\r?\nZ.*(?:\r?\nX.*(?:\r?\n[KLM].*)*\r?\nZ.*)*\z
有没有什么方法可以匹配相同的模式和一个额外的行更新相同的正则表达式?
A---Header
K
L
M
Z---Footer
--> empty line. No characters and spaces are there
我通过做一些谷歌尝试了选项..但这不起作用。
任何建议
谢谢!
答案 0 :(得分:0)
\z
锚点匹配在字符串的最后。要匹配可以以0或更多空行结尾的字符串,请在(?:\r?\n)*
之前添加\z
:
\AX.*(?:\r?\n[KLM].*)*\r?\nZ.*(?:\r?\nX.*(?:\r?\n[KLM].*)*\r?\nZ.*)*(?:\r?\n)*\z
^^^^^^^^^^
请参阅regex demo
如果您的字符串最后可以包含\n
符号,则可以将\z
替换为$
(因为$
可以在最后的换行符号之前匹配字符串,而\z
完全匹配字符串的结尾。)