在Notepad ++或任何文本编辑器中查找和替换的条件语句

时间:2013-07-26 20:39:12

标签: xml replace notepad++

我会保持简单。我得到了这个xml文件来修复。它在此xml文件上有超过10000个配置文件。在配置文件中有&lt;覆盖&GT; &LT; /范围&GT;标签。我很想知道是否有人知道Notepad ++是否支持查找和替换的条件语句,或者他们是否熟悉文本编辑器能够这样做。这背后的原因是,如果coverage标签之间的整数是<150000,那么它会给我带来问题。因此,能够找到所有标签,分析标签,如果偶然值小于150000,请将其替换为150000.

*即使是我不熟悉的插件也可能是解决方案

以下是个人资料的示例

<FortusTransaction Type="Property">
<Carriers>
<Carrier />
</Carriers>
<Province>NB</Province>
<CodeNames>
<Homeowners>
<QuoteInfo>
<ID>140061761 </ID>
<AssumeMultiLine>Y </AssumeMultiLine>
 <Dwelling>
  <DwellingType>H</DwellingType>
  <CityName>SAINT JOHN </CityName>
  <PostalCode></PostalCode>
  <Prov>NB </Prov>
  <FormType>2 </FormType>
  <Value>140000</Value>
  <Coverage>140000</Coverage>
  <DwellingDate>19660101 </DwellingDate>
  <Liab>-1</Liab>
  <PP>-1</PP>
  <PrmHeatType>CENTRAL FURNACE - GAS </PrmHeatType>
  <PrmHeatApproved>1</PrmHeatApproved>
  <AuxHeat1Type>NONE </AuxHeat1Type>
  <AuxHeat1Approved>1</AuxHeat1Approved>
  <ProtectionClass>P </ProtectionClass>
  <Ded>500 </Ded>
  <DobIns>19860101 </DobIns>
  <NumMortgage>1</NumMortgage>
  <BurgAlarm>NONE </BurgAlarm>
  <Structure>DETACHED </Structure>
  <RoofType>ASPHALT SHINGLES </RoofType>
  <RoofDate>19660101 </RoofDate>
  <Construction>FRAME </Construction>
  <ElectType>COPPER </ElectType>
  <ElectServ>100 AMP </ElectServ>
  <ElectDate>19660101 </ElectDate>
  <PlumbType>COPPER </PlumbType>
  <PlumbDate>19660101 </PlumbDate>
  <OwnerOcc>1</OwnerOcc>
  <OccSince>19660101 </OccSince>
  <InsSince>20060525</InsSince>
  <NumFam>1</NumFam>
  <NumStoreys>1 </NumStoreys>
  <ResidenceCov>
   <Apply>1</Apply>
   <Amount>140000 </Amount>
  </ResidenceCov>
  <SewerBackupExt>
   <Apply>1</Apply>
   <Coverage>140000 </Coverage>
  </SewerBackupExt>
   <Claim>
    <ClaimDate>19900415 </ClaimDate>
    <ClaimType>OTHER </ClaimType>
    <Amount>600 </Amount>
    <Forgiven>0 </Forgiven>
   </Claim>
 </Dwelling>
 </QuoteInfo>
 </Homeowners>
 </CodeNames>
 </FortusTransaction>

我想补充一点,标签之间也有可能有空格。因此,只需更换标签之间的所有内容即可。例如 另一个档案

<Value>142000 </Value>
  <Coverage>142000 </Coverage>

1 个答案:

答案 0 :(得分:2)

您可以使用正则表达式执行此操作。

查找内容: 字段中使用下面的正则表达式:

<Coverage>\s*(1[0-4]|[0-9])?[0-9]?[0-9]?[0-9]?[0-9]\s*</Coverage>

替换为:

<Coverage>150000</Coverage>

这将替换<Coverage>number</Coverage>小于number的每个150000字符串。

检查 this online demo 。蓝色文本将被匹配和替换。做一些测试,写一些例子并确保它符合你的期望。

Notepad ++上的用法:

确保在 搜索模式 框中查看 正则表达式 电台。查看下面的示例。

example notepadpp

相关问题