【发布时间】:2020-08-11 06:48:58
【问题描述】:
我必须在数字模式和冒号或换行符之间提取字符串(第一次出现)
我的字符串看起来像:
05-30-1306-29-13 建筑商风险:
限额/免赔额:
我想提取 BUILDERS RISK。可能有也可能没有冒号,在这种情况下,我们会将换行符视为终止模式
这是我到目前为止的想法
\d{2}-\d{2}-\d{4}-\d{2}-\d{2}\s*\W+[^:|\n]+:\s*
数字模式始终是 2-2-4-2 后跟任意字符串,后跟 \n 或 :
到目前为止,正则表达式得到了我需要的东西,但我不知道如何将它分成不同的匹配,所以我可以进行第二场匹配
第一次匹配 - 数字模式
第二场比赛 - 我需要什么
第 3 次匹配 - 冒号或换行符
任何指针都会有所帮助。
更新:要搜索的文本词的几个替代项可能是这样的
11-06-1212-29-12 住宅火灾 (DP-3):年租金
11-05-1212-26-12 房主 (HO-3):第二居所
我只想要冒号之前的任何内容,或者如果不存在,则取字符串直到找到换行符。附带说明一下,重要的文本可能不会出现在同一行中,而是出现在下一行,但在同一行中总是跟在冒号或换行符之后。
PS:提取的文本不应包含冒号
【问题讨论】:
标签: c# regex regex-greedy