技术需求:编写正则匹配非末行且后续有内容的文本行
正则表达式解决方案
需求明确
要匹配的是**结尾带换行符、后面紧跟另一行(排除最后一行)**的文本行——简单说就是所有不是最后一行的行,可按需选择是否包含空行。
可用正则表达式
- 匹配所有非最后一行(包括空行):
^.*$(?=\n)
- 仅匹配非空的非最后一行:
^.+$(?=\n)
必须开启多行模式(
m标志),让^和$能正确匹配每行的首尾。
原正则的问题
你之前用的^[^\n\r]*(?=\n(?!\n))有局限:它通过(?!\n)强制要求换行符后不能再是换行,这就只能匹配后面紧跟非空行的行,漏掉了那些后面紧跟空行的目标行。比如某行后面是空行,再后面才是有效内容,原正则就不会捕获这一行,但按需求它应该被匹配。
内容的提问来源于stack exchange,提问作者Mwthreex
相关产品推荐
相关产品推荐

