Нужна помощь в покрытии строкового значения с помощью регулярного выражения в notepad ++ - PullRequest
1 голос
/ 01 апреля 2019

Я пытаюсь заменить длину строкового значения из тега xml с 8 или более символов на фиксированные 7 символов в блокноте ++. До сих пор я пробовал !!

in Найти что:

<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 голосов
/ 01 апреля 2019

Спасибо всем за ответ.Попробовал некоторые изменения и получил мое требование.

В Find With: ([a-zA-Z0-9] {7}) ([a-zA-Z0-9] +)

В замене: \ 1

0 голосов
/ 01 апреля 2019

Найдите:

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

(убедитесь, что . не соответствует символу новой строки) и замените на:

<Tag>\1</Tag>

Обратите внимание, что, поскольку вы хотите

<Tag>E2EDL22 </Tag> 

, чтобы превратиться в

<Tag>E2EDL22</Tag> 

, потому что E2EDL22 имеет только 7 символов, а не 8, вы должны использовать {7 для сопоставления символов слева, а не {8, чтобыобрежьте это последнее место.

...