Notepad ++ Regex,获取字符串和动态数字之间的所有内容,后跟字符串

时间:2013-06-01 05:45:29

标签: regex notepad++

我想转换一下:

<g_n><![CDATA[zxcvzxcv, zx123vz123xc13vv150 , xxxx GSD 3363200 3Vo1asdf23l 4338D asdf]]></g_n>

为:

<g_n><![CDATA[xxxx GSD 3363200 3Vo1asdf23l 4338D asdf]]></g_n>

其中xxxx可以是1到9999之间的任何数字

到目前为止,这是我的正则表达式,我非常接近:

(?<=<g_n\><!\[CDATA\[).*(?<=[0-9] GSD)

我不知道如何让我的正则表达式在GSD之前找到任何数字。

3 个答案:

答案 0 :(得分:0)

查看以下模式

<g_n><!\[CDATA\[\d{1,4} GSD(.|\s)*\]\]></g_n>

答案 1 :(得分:0)

描述

假设您正在使用notepad ++ 6.3.3(带有正则表达式搜索的记事本5.x.x存在问题)。

您想要的输出看起来只是从输入字符串中减去前两个逗号分隔数据块。您可以使用它来查找和删除输入字符串中的值

正则表达式:\b[a-z]{8}\b,\s\b[a-z0-9]{19}\b\s,\s\b 替换为:empty field

如果你想简单地捕获其他文本以便你可以验证它正是你想要保留的那么你可以使用这个正则表达式

正则表达式:(<g_n><!\[CDATA\[).*?,\s?(\d{1,4}\sGSD\s.*?<\/g_n>) 替换为$1$2

实施例

第一个选项

在这个例子中,我只是标记文本以显示它实际上按预期找到了字符串

enter image description here

此示例显示了我如何弹出搜索/替换对话框 enter image description here

第二个选项

正则表达式填写

形式的字段宽度

正则表达式:(<g_n><!\[CDATA\[).*?,\s?(\d{1,4}\sGSD\s.*?<\/g_n>)

enter image description here

答案 2 :(得分:0)

好的,这适用于在最后一个冒号包含一个或多个数字后保留CDATA\[的任何表达式

   (.*)(CDATA\[)(.*)(,\s)([0-9]+)(.*)
   \1\2\5\6\7

您的号码隐藏在\5下,请试一试并在替换时只放\5看看会发生什么(通常最好使用括号中的组来快速提取所需元素)