问题描述
我们如何使用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}
与任何语言的三个大写字母匹配) -
$
-行尾。