正则表达式:发现两个字符串之间的空间太长

时间:2018-06-21 18:51:27

标签: regex xml string charactercount

我有一个XML文件,试图将其解析到数据库中,但是却收到错误消息,指出某个字段超出了我的最大字符数(2000)。我已经确定了有问题的字段,但是在错误中没有行号,因此我必须在XML本身中查找和删除违规者。

下面是一个示例。我需要找到任何条目,其中“ CCCStmts Correction”和“ RoAmts”首次出现之间的字符超过2000个字符。我正在使用Notepad ++,只能认为它可以与regex一起使用。想法?

   <CCCStmts Correction="sample text" />
      <CCCStmts Correction="sample text" />
      <CCCStmts Correction="sample text" />
      <CCCStmts Correction="sample text" />
      <CCCStmts Correction="sample text" />
      <CCCStmts Correction="sample text" />
      <CCCStmts Correction="sample text" />
      <RoAmts PayType="x" AmtType="x" TotalAmt="x" />

1 个答案:

答案 0 :(得分:0)

正则表达式不是答案。当然,您可以使用正则表达式来做到这一点,但是我想您已使用API​​在模型中以编程方式表示XML?或者,即使不是,也正在解析它,以便将XML中包含的相关值提交给数据库。因此,一旦获取了值,只需测试其长度,然后在符合字段要求的情况下提交即可。

要检查字符串的长度,只需使用...

// if the length is 2000 or less
if (string.length()` < 2001) {
    //your routine
}

...,它将跳过任何由2001+个字符组成的值。

此方法不需要纯粹地进行额外的迭代即可搜索,也不需要进行任何替换。这样会更整洁,效率更高。