我在查找多行字符串时遇到问题: 我在“contractBytes”var:
中有这个文本<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Records xmlns="http://www.datapump.cig.com">
<Contract phaseId="4" operation="2">
<General>
<ContractCode>8848</ContractCode>
<DateOfSignature>2009-09-08</DateOfSignature>
<CreditPurpose id="20"/>
<NegativeStatus id="4"/>
<ApplicationDate>2009-09-08</ApplicationDate>
<StartDate>2009-09-08</StartDate>
<ExpectedEndDate>2011-03-31</ExpectedEndDate>
<Subjects>
<Subject roleId="1">
<Entity>
<Individual gender="1">
<FirstName>
<Text language="uk-UA">украинский</Text>
</FirstName>
<Surname>
<Text language="uk-UA">Первый</Text>
</Surname>
<FathersName>
<Text language="uk-UA">контрагент</Text>
</FathersName>
<Classification id="1"/>
<DateOfBirth>1980-12-06</DateOfBirth>
<Residency id="1"/>
<Citizenship code="UA"/>
<MaritalStatus id="2"/>
<Identifications>
<Identification typeId="2">
<Number>2554209876</Number>
</Identification>
<Identification typeId="4">
<Number>ВЦ620997</Number>
<IssueDate>1997-04-01</IssueDate>
<Authority language="uk-UA">Дебальцевский ГОУМВД Украины в Донецкой области</Authority>
</Identification>
<Identification typeId="1">
<Number>2554209876</Number>
</Identification>
</Identifications>
<Addresses>
<Address typeId="2">
<Street>
<Text language="uk-UA">м. Kharkov, вул. Street, буд. 1, кв. 1</Text>
</Street>
</Address>
</Addresses>
</Individual>
</Entity>
</Subject>
</Subjects>
</General>
<Type>
<Credit paymentPeriodId="9" paymentMethodId="6">
<CreditLimit currency="USD">7800.0</CreditLimit>
<Records>
<Record accountingDate="2011-04-20">
<CreditUsage id="3"/>
<ResidualAmount currency="USD">7800.0</ResidualAmount>
<OverdueAmount currency="USD">0.0</OverdueAmount>
</Record>
</Records>
</Credit>
</Type>
</Contract>
我正在尝试使用正则表达式:
Pattern p = Pattern.compile("(<Contract)(.)*(Contract>)", Pattern.DOTALL);
Matcher m = p.matcher(contractBytes);
for (;m.find();)
{
if (m.group(1).contains("<ContractCode>" + contractCode + "</ContractCode>"))
{
dealXmlMap.put(Long.parseLong(contractCode), m.group(1));
break;
}
}
但是m.find总是返回false。 我应该怎么做这个模式来从contractBytes var?
获取文本答案 0 :(得分:1)