在记事本++中使用正则表达式覆盖字符串值时需要帮助

时间:2019-04-01 08:20:46

标签: regex notepad++

我正在尝试将xml标记中的字符串值长度从8个或更多字符替换为notepad ++中的固定7个字符。

在查找内容中:

<Tag>([a-zA-Z0-9 ]{8,})</Tag>    

替换为:

<Tag>\1{7}</Tag>

这是我要替换的字符串:

<Tag>E2EDL20003         </Tag>   
<Tag>E2EDL22            </Tag>    
<Tag>E2EDL22 </Tag>  
<Tag>E2EDL2</Tag>

预期结果:

<Tag>E2EDL20</Tag>    
<Tag>E2EDL22</Tag>   
<Tag>E2EDL22</Tag>  
<Tag>E2EDL2</Tag>

实际结果:

<Tag>E2EDL20003         {7}</Tag>  
<Tag>E2EDL22            {7}</Tag>  
<Tag>E2EDL22 {7}</Tag>  
<Tag>E2EDL2</Tag>

2 个答案:

答案 0 :(得分:0)

搜索:

<Tag>([a-zA-Z0-9 ]{7}).*

(确保.与换行符不匹配),并替换为:

<Tag>\1</Tag>

请注意,既然您要

<Tag>E2EDL22 </Tag> 

变成

<Tag>E2EDL22</Tag> 

由于E2EDL22仅包含7个字符,而不是8个字符,因此您应使用{7来匹配左侧的字符,而不是{8,以修剪最后一个空格。

答案 1 :(得分:0)

谢谢大家的答复。尝试了一些更改并得到了我的要求。

查找方式: ([a-zA-Z0-9] {7})([a-zA-Z0-9] +)

在替换中: \ 1