C#RegEx多行-需要在模式之间获取特定文本

C#RegEx多行-需要在模式之间获取特定文本,c#,regex,C#,Regex,我有一个多行文本字符串,如下所示: Policy NO: 236511116, Jhon Mark Commencement Date: 28/02/2001 Age: 24, (—) Plan: - Life Plan (r.No. 111) Policy Term: 20 (Premium payment term : 15) Premium (JIs.)t - 1,531.00 payable Quarterly 我希望摘录以下文本: 236511116 - Its a number w

我有一个多行文本字符串,如下所示:

Policy NO: 236511116, Jhon Mark
Commencement Date: 28/02/2001 Age: 24, (—)
Plan: - Life Plan (r.No. 111)
Policy Term: 20 (Premium payment term : 15)
Premium (JIs.)t - 1,531.00 payable Quarterly
我希望摘录以下文本:

236511116 - Its a number which comes after text "Policy NO:" and before (,)

Jhon Mark - which comes after "," and before line break and its last word in 1st line

20 - which comes after "Policy Term: " and before "("

15 - which comes after "term : " and before ")"

1,531.00 - which comes after "Premium some chars - " and before "payable"
前后文本是固定的,永远不会改变,因此它们可以用作搜索模式。要搜索的文本可以更改,并且可以达到任意长度

请帮助并忽略我先前关于RegEx的问题


谢谢

下面的正则表达式提取了您所关注的所有元素:

(?:Policy NO: (\d+), (.*)$|Policy Term: (\d+) .*Premium payment term : (\d+)|Premium .* ([0-9,.]+) payable .*)
你可以在工作中看到这一点,并在


如果您在查看链接后仍有疑问,请告诉我。

因此。。。你想让我们做你的工作?到目前为止,你尝试了什么?寻找解决方案,我是一个php的家伙,致力于解决一个小的c#实用程序问题,而RegEx总是给我带来很多麻烦!!寻找解决方案表明你已经尝试了一些东西。如果你真的尝试过,我们可以帮助你发现你做错了什么。如果我们只是把解决方案交给你,下次你不仅会同样迷路,还会把一段你不懂的代码放在代码库中,如果格式稍有改变,你就会遇到无法修复的错误:如果有人在“term”之后更正多余的空格,会发生什么?哦,Floris提供的魔法公式将失败,搜索结果将为空。它是有效的。。。直到有人修正了这个错误。花点时间去理解,这是你的工作。事实上,到目前为止,我尝试的是,我用一些标识符(如“vvv”或“~”)替换换行符,并将其转换为一行字符串,然后尝试使用以“vvv”开头、以“vvv”结尾的模式进行搜索,但没有成功。我的意思是发布你尝试运行的实际代码。谢谢帮助。我使用以下方法尝试了此解决方案:Regex m=new Regex((?:保单编号:(\\d+,(.*)$);保单期限:(\\d+。。*保费支付期限:(\\d+);保费。*([0-9,.]+)应付。*)”,RegexOptions.Multiline);但它返回3个值:“策略编号:236511116,Jhon Mark”,“236511116”,“Jhon Mark”