2017-10-06 11 views
-1

我有一个文件格式如下所示。 #ADDBANK是每个记录的标题,每个记录可能有0个或多个以//错误开头的行!正则表达式的帮助

我需要一个正则表达式来标识包含以//错误开头的一行或多行的所有记录(以#ADDBANK开头)!并从该记录返回以下行:

  • 含#ADDBANK
  • 行中的相应的记录行与customerNumber之
  • 开始的每行以//错误开始的纪录!

例如,对于具有以下两条示例记录的文件的正则表达式的结果如下所示。任何可以借我一手的正规表达专家?

结果

#ADDBANK 
customerNumber=10427856 
//error!-error=SP02195:account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. error=SP02195:account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. 
//error!-error=ufaEvent.process exception : account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. error=ufaEvent.process exception : account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. 

示例文件

#ADDBANK 
customerNumber=10427856 
bankruptcy.filingDate=2015-12-10 
bankruptcy.bankruptcyStatus=CONFIRM 
bankruptcy.bankruptcyStatusDate=2015-12-10 
bankruptcy.proofOfClaimType=FILINHOU 
bankruptcy.proofOfClaimFilingDate=2015-12-31 
bankruptcy.confirmationDate=2016-02-18 
bankruptcy.caseNumber=19-10832 
bankruptcy.chapterFiled=CHAPTER13 
bankruptcy.creditUnionAgency=Virginia Eastern 
bankruptcy.bankruptcyUAFAttributes.uafString9=0 
bankruptcy.bankruptcyUAFAttributes.uafString6=ST LOUIS 
bankruptcy.bankruptcyUAFAttributes.uafString4=JOHN DOE JR 
bankruptcy.bankruptcyUAFAttributes.uafString13=0 
bankruptcy.bankruptcyUAFAttributes.uafString8=63143 
bankruptcy.bankruptcyUAFAttributes.uafDate5=2016-09-07 
bankruptcy.bankruptcyUAFAttributes.uafString7=MO 
bankruptcy.bankruptcyUAFAttributes.uafString11=0 
bankruptcy.bankruptcyUAFAttributes.uafString5=PO BOX 430908 
//error!-error=SP02195:account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. error=SP02195:account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. 
//error!-error=ufaEvent.process exception : account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. error=ufaEvent.process exception : account.paymentSummary.statementFormat is not required when account.paymentSummary.statementIndicator is Suppress Statement-Create Billing. 

#ADDBANK 
customerNumber=10428256 
bankruptcy.filingDate=2010-09-06 
bankruptcy.bankruptcyStatusDate=2017-10-03 
bankruptcy.bankruptcyStatus=FILED 
bankruptcy.confirmationDate=2012-01-12 
bankruptcy.chapterFiled=CHAPTER13 
bankruptcy.creditUnionAgency=Western 
bankruptcy.bankruptcyUAFAttributes.uafString6=Kansas City 
bankruptcy.bankruptcyUAFAttributes.uafString4=Bob Martin 
bankruptcy.bankruptcyUAFAttributes.uafString9=0 
bankruptcy.bankruptcyUAFAttributes.uafString3=NO 
bankruptcy.bankruptcyUAFAttributes.uafString8=64106 
bankruptcy.bankruptcyUAFAttributes.uafString7=MO 
bankruptcy.bankruptcyUAFAttributes.uafDate5=2011-01-05 
bankruptcy.bankruptcyUAFAttributes.uafString5=818 Test Blvd 
bankruptcy.bankruptcyUAFAttributes.uafString11=0 
bankruptcy.bankruptcyUAFAttributes.uafString13=0 
+0

你使用什么语言/工具? – Toto

+0

我们正在使用BareTail Pro – Grasshopper

+0

[看起来像它使用PCRE。](https://baremetalsoft.com/baretailpro/regex.php) – Aaron

回答

1

如果你正在寻找匹配这些行所有你需要做的就是在每一行的末尾匹配。使用此正则表达式

#ADDBANK|customerNumber.*|\/\/error.* 

您将匹配记录中的所有必需行。但使用这个正则表达式,你将不得不遍历所有的匹配,以收集所有匹配的行。

+0

太棒了!谢谢你,先生,这是完美的作品... – Grasshopper