【问题标题】:Regex to ignore data after staring point and endpoint正则表达式在起点和终点后忽略数据
【发布时间】:2021-01-05 04:05:01
【问题描述】:

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

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

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

但它不是动态的。

这将被删除,因为这已经在 08/03/2020 和 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
                                                 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

【问题讨论】:

  • 我已经指出了我需要的解决方案,请删除相关问题
  • 这是我当前的正则表达式 Regex.Match(text,"(?
  • 请将此详细信息添加到问题中并解释它有什么问题。你写“date could be dynamic”,为什么要在模式中硬编码?
  • 因为我不知道如何让它动态
  • 我猜你想要(?ms)^\d{2}/\d{2}/\d{4}\s[\S\s]*TRU$ (demo)

标签: c# regex vb.net uipath uipath-studio


【解决方案1】:

你可以使用

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

regex demo

详情

  • (?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} 匹配来自任何语言的三个大写字母)
  • $ - 行尾。

【讨论】:

  • 先生,当样本数据是这样时它不再起作用
  • @MrDave 使用(?ms)^\d{2}/\d{2}/\d{2}(?:\d{2})?\s.*\s\p{Lu}{3}$ (demo)。
  • 不支持某些模式修饰符先生,我正在使用 uipath 先生,您可以在本网站中放置或测试吗先生 regexr.com
  • @MrDave 我不会使用 regexr,它对用户不友好而且不如 regex101 强大(仅支持 JavaScript 和 PCRE 正则表达式风格)。您正在 UIPath 中使用支持我在答案中使用的所有内联修饰符的正则表达式。
  • 顺便说一下先生,我很抱歉,这是来自输出regex101.com/r/73wsdP/9的数据的原始格式
猜你喜欢
  • 2019-07-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 2019-10-06
  • 2021-09-13
相关资源
最近更新 更多