我想找到以下斜体+粗体文本:
我被卡住了 我被卡住了 我被卡住了 我
被卡住了 我被卡
住了 我感兴趣的是仅在文本包含换行符时才出现文本"我卡住了"。 我不知何故认为我可以通过这样的捕获组:
(thiss+iss+cool)
,然后返回包含换行符的匹配项。现在,所有事件都被选中,我无法弄清楚解决此问题的最佳方法是什么。任何正确方向的提示将不胜感激!Regex101.com
我正在使用 C#。
如果您必须使用一种正则表达式方法,则可以使用具有两种替代方法的正则表达式,这些替代方案将匹配一个I am stuck
,在I
和am
之间有一个换行符,在am
和stuck
之间匹配第二个:
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"));