只有当分隔符中还有换行符时,我才try 捕获两个分隔符之间的文本.例如,如果我们有下面的文本.

Organisation Name <<me.company.name>>
ABN/ACN <<me.company.abn>>
Contact Name <<me.name>>
<<me.PhoneNumber

Another line>>
Email <<me.emailAddress>>

我只想退还&lt&书信telegram ;我电话号码\n\n'另一行&gt&gt;

\n可以在任何地方-基本上只有在&lt&lt&gt&gt;忽略所有其他&lt&lt&gt&gt;

到目前为止,我的模式是&lt&书信telegram ;(.?\n)*?&gt&gt;但这抓住了一切&lt&lt&gt&gt;(我用的是C#)

下面是我try 过的一个例子

非常感谢你的帮助

推荐答案

你可以用

<<((?:(?!<<|>>).)*?\n(?s:.)*?)>>

regex demo.Details:

  • <<-<<字符串
  • ((?:(?!<<|>>).)*?\n(?s:.)*?) - Group 1:
    • (?:(?!<<|>>).)*?-任何不以>><<字符序列开头的零个或多个字符(换行字符除外),尽可能少
    • \n-一个半字符
    • (?s:.)*?-任何零个或更多字符(包括换行符),尽可能少
  • >>->>字符串

.net相关问答推荐

无法在Designer、VS2022、. NET 8中打开WinForms表单'

ZstdNet库的问题:Src大小不正确,异常

ASP.NET核心最小API必须以正斜杠开头吗?

使用托管身份而不是检测密钥配置Application Insights

部署时如何控制红隼端口?

C# 中的批量更新

.NET 的future 版本会支持 C# 中的元组吗?

HttpClient 请求抛出 IOException

如何中止任务,如中止线程(Thread.Abort 方法)?

比较 C# 中的字符串和对象

使用 C# 清除文本文件的内容

为什么递归调用会导致不同堆栈深度的 StackOverflow?

如何正确停止BackgroundWorker

是否有 TLS 1.2 的 .NET 实现?

System.String.Copy 在 .NET 中有什么用?

测试没有预期的异常

C# 中的 override 和 new 关键字有什么区别?

如何从 WCF REST 方法返回自定义 HTTP 状态代码?

任何人都知道缺少枚举通用约束的好方法吗?

您可以将 Microsoft Entity Framework 与 Oracle 一起使用吗?