2016-07-28 10 views
0

Я пытаюсь создать шаблон для сопоставления и замены слов с помощью регулярного выражения. Моя строка, как приведено нижеРегулярное выражение для сопоставления строки и замены

<mycomponent id="Myvalue1.Myvalue2.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 
<mycomponent id="Myvalue3.Myvalue4.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 
<mycomponent id="Myvalue5.Myvalue6.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 
<mycomponent id="Myvalue7.Myvalue8.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9" 

Я хочу, чтобы ожидаемый результат будет выглядеть

<mycomponent id="Myvalue1.Myvalue2" 
<mycomponent id="Myvalue3.Myvalue4" 
<mycomponent id="Myvalue5.Myvalue6" 
<mycomponent id="Myvalue7.Myvalue8" 

Я не могу использовать ReplaceAll .013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9 опустошить, потому что некоторые особенности, которые все еще используют, что GUID

Я был в состоянии соответствовать строке, используя ниже шаблон

<mycomponent Id=*.*.013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9 

Но когда я использовал ниже шаблон для замены его не работают

<mycomponent Id=*.*. 
+0

какой язык программирования используется в вашем случае? – RomanPerekhrest

+0

Я пытаюсь заменить значение с помощью Notepad ++. – TVSuser1654136

ответ

1

Эта модель действительно не делает предполагаемую вещи, так как вы не избежали точек. Это просто совпадение. Чтобы соответствовать тому, что вы хотите, следует использовать следующее регулярное выражение.

<mycomponent id=.*?\..*?\. 

Это регулярное выражение соответствует <mycomponent id=, то точку, то минимальное количество символов, прежде чем она встречает точку, то точка, затем снова минимальное количество символов, прежде чем он встречает другую точку.


Если вы хотите Repalce, использовать это для регулярных выражений поля

(<mycomponent id=".*?\..*?)\.\S+ 

и это для области замены

$1" 
+0

и для замены того, что регулярное выражение должно использовать – TVSuser1654136

+0

@user Что бы вы хотели заменить и с чем? – nicael

+0

Указано в вопросе. Не могли бы вы посмотреть, что – TVSuser1654136

1

Используйте следующий подход:

  • regexp field (поиск):

    (<mycomponent id=.+\..+)(?:\.)013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9(.+) 
    
  • заменить на:

    $1$2 
    

(проверено на Notepad++)

+0

Работает. я просто хочу заменить GUILD.Этот шаблон заменяет все после GUID тоже – TVSuser1654136

+0

вы не представили фактическую строку, которая содержит что-то * после GUID *. Добавить пример – RomanPerekhrest

+0

Моя полная строка похожа на TVSuser1654136