我正在尝试使用正则表达式创建匹配和替换单词的模式。 我的字符串如下所示
<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 :(得分:1)
这种模式并没有真正做到预期的事情,因为你没有逃过现实。这只是一个巧合。为了匹配您想要的,应使用以下正则表达式。
<mycomponent id=.*?\..*?\.
这个正则表达式匹配<mycomponent id=
,然后是一个点,然后匹配一个点之前的最小量的字符,然后是一个点,然后再遇到另一个点之前的最小量的字符。
如果您想要重新生成,请将其用于正则表达式字段
(<mycomponent id=".*?\..*?)\.\S+
这是替换字段
$1"
答案 1 :(得分:1)
Use the following approach:
regexp field(search for):
(<mycomponent id=.+\..+)(?:\.)013D0E13-BF5F-4D0F-AAFA-FA4B120DE3E9(.+)
replace to:
$1$2
(tested on Notepad++
)