Regex 正则表达式以匹配模式和文件中的最后一个空行
我有要匹配的正则表达式: 有没有办法用一个额外的行更新相同的正则表达式来匹配相同的模式Regex 正则表达式以匹配模式和文件中的最后一个空行,regex,Regex,我有要匹配的正则表达式: 有没有办法用一个额外的行更新相同的正则表达式来匹配相同的模式 A---Header K L M Z---Footer --> empty line. No characters and spaces are there 我通过谷歌尝试了一些选项……但这不起作用 有什么建议吗 谢谢 锚定在字符串的最末端匹配。要匹配以0或更多空行结尾的字符串,请在\z之前添加(?:\r?\n)*: \AX.*(?:\r?\n[KLM].*)*
A---Header
K
L
M
Z---Footer
--> empty line. No characters and spaces are there
我通过谷歌尝试了一些选项……但这不起作用
有什么建议吗
谢谢 锚定在字符串的最末端匹配。要匹配以0或更多空行结尾的字符串,请在
\z
之前添加(?:\r?\n)*
:
\AX.*(?:\r?\n[KLM].*)*\r?\nZ.*(?:\r?\nX.*(?:\r?\n[KLM].*)*\r?\nZ.*)*(?:\r?\n)*\z
^^^^^^^^^^
见
如果字符串末尾可以有一个
\n
符号,您可以用$
替换\z
(因为$
可以在字符串中最后一个换行符之前匹配,而\z
正好匹配字符串的末尾)。\z
锚匹配字符串的最末端。要匹配以0或更多空行结尾的字符串,请在\z
之前添加(?:\r?\n)*
:
\AX.*(?:\r?\n[KLM].*)*\r?\nZ.*(?:\r?\nX.*(?:\r?\n[KLM].*)*\r?\nZ.*)*(?:\r?\n)*\z
^^^^^^^^^^
见
如果您的字符串结尾可以有一个
\n
符号,您可以用$
替换\z
(因为$
可以在字符串中最后一个换行符之前匹配,而\z
正好匹配字符串的结尾)。。或者,不工作!!勾选这个你的意思是可能有很多空行?只需在\z
之前添加(?:\r?\n)*
。因为Java 8行分隔符可以表示为\r
,所以不需要\r?\n
。。或者,不工作!!勾选这个你的意思是可能有很多空行?只需在\z
之前添加(?:\r?\n)*
。由于Java 8行分隔符可以表示为\r
,因此不需要\r?\n
。