正则表达式忽略凝视点和端点之后的数据

问题描述

我们如何使用regex删除或过滤数据以在之间之间删除数据?起点是第一个日期(日期可以是动态的,它不是固定的),例如08/03/2020,终点是大写锁定字符串中的最后3个(也是动态的,但大写字母最多3个字符) ),例如下面的字符串中的TRU。并且之后应忽略或删除所有数据

这是我当前的正则表达式:

Regex.Match(text,"(?<=08/03/2020\s+)[\S\s]*?(?=TRU)").Value.Trim

但这不是动态的。

内容将被删除,因为它已经在2020年8月3日和TRU之后。

有什么想法我们可以为这个设计正则表达式吗?谢谢。 #要删除的数据

  Processing
       Co-Applicant
       No inquiry records found."

#The String

"08/03/2020        NOVUS HOME                  Mortgage Company                                                     TRU
                     MORTGAGE
   07/08/2020        FACTUAL DATA                Mortgage Reporter                                                    XPN
   07/08/2020        FCTUALDATA                                                                                       EFX
   07/08/2020        NOVUS HOME                  Mortgage Company                                                     TRU
                     MORTGAGE
   07/07/2020        CROSSCOUNTRY                Mortgage Loan                                                        TRU
                     MORTGAG
   07/07/2020        FACTUAL DATA                Mortgage Reporter                                                    XPN
   07/07/2020        FCTUALDATA                                                                                       EFX
   05/21/2020        CAP ONE NA                  Bank Credit Card                                                     XPN
   05/21/2020        CAPITAL ONE                 Credit Card                                                          TRU
   05/21/2020        CAPITALONE                  Bank                                                                 EFX
   05/20/2020        CROSSCOUNTRY                Mortgage Loan                                                        TRU
                     MORTGAG
   05/20/2020        FACTUAL DATA                Mortgage Reporter                                                    XPN
   05/20/2020        FCTUALDATA                                                                                       EFX
   05/20/2020        FINGERHUT/WEBBANK           Finance Company                                                      XPN
   05/07/2020        EMS                                                                                              EFX
   05/07/2020        GROW FINANCIAL CREDI        Credit Bureau/Mortgage                                               TRU
                                                 Processing
   Co-Applicant
   No inquiry records found."

#期望的输出

   "08/03/2020        NOVUS HOME                  Mortgage Company                                                     TRU
                         MORTGAGE
       07/08/2020        FACTUAL DATA                Mortgage Reporter                                                    XPN
       07/08/2020        FCTUALDATA                                                                                       EFX
       07/08/2020        NOVUS HOME                  Mortgage Company                                                     TRU
                         MORTGAGE
       07/07/2020        CROSSCOUNTRY                Mortgage Loan                                                        TRU
                         MORTGAG
       07/07/2020        FACTUAL DATA                Mortgage Reporter                                                    XPN
       07/07/2020        FCTUALDATA                                                                                       EFX
       05/21/2020        CAP ONE NA                  Bank Credit Card                                                     XPN
       05/21/2020        CAPITAL ONE                 Credit Card                                                          TRU
       05/21/2020        CAPITALONE                  Bank                                                                 EFX
       05/20/2020        CROSSCOUNTRY                Mortgage Loan                                                        TRU
                         MORTGAG
       05/20/2020        FACTUAL DATA                Mortgage Reporter                                                    XPN
       05/20/2020        FCTUALDATA                                                                                       EFX
       05/20/2020        FINGERHUT/WEBBANK           Finance Company                                                      XPN
       05/07/2020        EMS                                                                                              EFX
       05/07/2020        GROW FINANCIAL CREDI        Credit Bureau/Mortgage                                               TRU

解决方法

您可以使用

(?ms)\A(?:\d{2}/\d{2}/\d{2}(?:\d{2})?|−−DATE−−)\s.*\s\p{Lu}{3}$

请参见enter image description here

详细信息

  • (?ms)-RegexOptions.Multiline^匹配行开始,$匹配行结束位置)和RegexOptions.Singleline.现在也匹配换行符)内联修饰符
  • \A-字符串的开头
  • (?:\d{2}/\d{2}/\d{2}(?:\d{2})?|−−DATE−−)-两个数字/,两个数字/和两个或四个数字或−−DATE−−字符串
  • \s-空格
  • .*-零个或多个字符,尽可能多
  • \s-空格
  • [A-Z]{3}-三个大写ASCII字母(\p{Lu}{3}与任何语言的三个大写字母匹配)
  • $-行尾。