首页 > 解决方案 > 仅使用 .net Regex 仅获取第 N 次出现的字符串

问题描述

请帮忙。我已经尝试了超过 2 天......这让我很沮丧。

如果您有任何想法会很有帮助:

具有以下文本并在 .NET 中使用正则表达式:

   -------------------------------------
   This is a text   : This is my first line of information
                      which continues here
                    : This is my second line of information
                      which continues here
                    : This is my third line of information
                      which continues here
   -------------------------------------

我怎么能得到:
-“这是我在这里继续的第一行信息”
-“这是我在这里继续的第二行信息”
-“这是我在这里继续的第三行信息”

一个实际的例子: 尝试逐行阅读
请考虑文本动态。

我能够获得的最佳正则表达式是:

 (?ms)((?<=(:)).*?(?=(\:)))
  1. 如何从“:这是我的第二行”或“:这是我的第三行”开始阅读
  2. 如何替换“这是我的第一行信息”和“在此继续”之间的空格。

非常感谢。拉杜。

标签: c#.netregex

解决方案


这将为您提供所需的一切,但不幸的是也有点太多了

https://regex101.com/r/5lcWku/1

/:[^:]+$/gm

问题是,如果不匹配之后的所有内容,您将永远无法匹配最后一行,因为您无法知道最后一行之后的内容是否仍然有效(或者至少您没有提供我们最初的问题中的一个)。


推荐阅读