正则表达式:如何匹配文本实例,包括空格和新行?

时间:2018-03-21 10:25:07

标签: regex regex-negation regex-lookarounds regex-group regex-greedy

我想要一个正则表达式,它将匹配一个或多个文本实例,后跟换行符。在文本的最后一个匹配后跟一个换行符我想要一个进一步的换行符,然后不再有。我将如何实现这一目标?

我在执行新的一条新规则时遇到了困难。

我的(错误的)尝试包括: [^\n]+\n\n ([^\n]+\n[^\n]+)*\n\n

我想要匹配的文字示例是:

"Hello text\nMore text\nLast one\n\n"

两者都不匹配:

"Hello text\nMore text\nLast one\n\n\n"

"Hello text\nMore text\nLast one\n"

请帮助我。感谢

1 个答案:

答案 0 :(得分:0)

您要求匹配任意数量的文本行,最后只添加一个新行,只需:^(.+\n)+\n(?!\n)将执行您喜欢的操作。

此处示例:https://regex101.com/r/Hy3buP/1

说明:

^                        - Assert position at start of string
 (.+\n)+                 - Match any positive number of lines of text ending in newline
        \n               - Match the next newline
          (?!\n)         - Do a negative lookahead to ascertain there are no more newlines.