需要使用Notepoad ++删除字符串之前的文本

时间:2017-07-18 10:54:08

标签: regex notepad++

要求...我只需要在<?xml之前移除文字,同时保留每个<?xml代码之间的内容。

实施例

DEBUG 12 Jul 09:39:23 [PSE-10000000516] OnlinePublisher.java :120  -
Publishing

    <?xml version="1.0" encoding="utf-8"?>
        <XMLDATA>
        <CHILD_DATA>
        ABCD
        </CHILD_DATA>
        </XMLDATA>

DEBUG 12 Jul 09:40:23 [JOB-660] OnlinePublisher.java :120  -
Publishing

    <?xml version="1.0" encoding="utf-8"?>

2 个答案:

答案 0 :(得分:1)

这就是你想要的:

  • 控制 + ħ
  • 找到:[^<>]+?(?=\R\s*<\?xml )
  • 替换为:EMPTY
  • 全部替换

<强>解释

[^<>]+?     : 1 or more characters that is not < or >, not greedy
(?=         : start lookahead
  \R        : any kind of line break
  \s*       : 0 or more spaces
  <\?xml    : literally
)           : end lookahead

检查. matches newline

给定示例的结果(4次):

<?xml version="1.0" encoding="utf-8"?>
    <XMLDATA>
    <CHILD_DATA>
    ABCD
    </CHILD_DATA>
    </XMLDATA>
<?xml version="1.0" encoding="utf-8"?>
    <XMLDATA>
    <CHILD_DATA>
    ABCD
    </CHILD_DATA>
    </XMLDATA>
<?xml version="1.0" encoding="utf-8"?>
    <XMLDATA>
    <CHILD_DATA>
    ABCD
    </CHILD_DATA>
    </XMLDATA>
<?xml version="1.0" encoding="utf-8"?>
    <XMLDATA>
    <CHILD_DATA>
    ABCD
    </CHILD_DATA>
    </XMLDATA>

答案 1 :(得分:0)

试试这个^(\w+.*\s+)(\w+\s)\s+

  1. 控制+ F
  2. 替换
  3. 选择正则表达式
  4. 在查找内容中给出了正则表达式输入
  5. 替换
  6. 这可能会对你有所帮助。