正则表达式表示包含换行符的短语



我想找到以下斜体+粗体文本:

我被卡住了 我被卡住了 我被卡住了 我
卡住了 我被卡

住了 我感兴趣的是仅在文本包含换行符时才出现文本"我卡住了"。 我不知何故认为我可以通过这样的捕获组:

(thiss+iss+cool)

,然后返回包含换行符的匹配项。现在,所有事件都被选中,我无法弄清楚解决此问题的最佳方法是什么。任何正确方向的提示将不胜感激!Regex101.com

我正在使用 C#。

如果您必须使用一种正则表达式方法,则可以使用具有两种替代方法的正则表达式,这些替代方案将匹配一个I am stuck,在Iam之间有一个换行符,在amstuck之间匹配第二个:

b(?:Is*ns*ams+stuck|Is+ams*ns*stuck)b

查看正则表达式演示

但是,使用正则表达式要容易得多Is+ams+stuck(根据您的需要,有或没有单词边界),但过滤掉那些内部没有换行符的匹配项:

var ms = Regex.Matches(s, @"Is+ams+stuck")
.Cast<Match>()
.Where(m => m.Value.Contains("n"));

最新更新