2017-09-26 3 views
1

Ich habe eine Liste von Werten in einem csv, die ich versuche, leicht mit einem REGEX-Suche ändern und ersetzen mit Notepad ++. Was ich habe, enthält die folgenden Beispiele:Regex ersetzen zwischen Notepad ++

Text,UK_BT.BT1.BT1 1,123 
Text,UK_BT.BT11.BT11 1,123 
Text,IE_text.text.text,123 

Was ich bin zu wollen, zu tun ist, um den Text zwischen dem ersten Komma und letzten Periode entfernen, nur, wo die Linie enthält UK_BT. So würde die Ausgabe sein:

Text,BT1 1,123 
Text,BT11 1,123 
Text,IE_text.text.text,123 

Hat jemand irgendwelche Hinweise? Regex ist wirklich nicht meine Stärke und wird in der Regel nach der Verwendung vergessen! Danke,

+1

Warum wird 'Text, IE_text.text, 123' zu' Text, IE_text.text.text, 123'? – polkduran

+0

Tippfehler, was behoben wurde :) –

Antwort

3

Suchen nach: ^(?=.*UK_BT.*)([^,]+,).*\.([^\.]+)$

Ersetzen mit \1\2

Erklärung

^    # Beginning of the line. 
(?=.*UK_BT.*) # Must contain 'UK_BT' (positive look ahead, not capturing group, not character consuming). 
(   # Beginning of the first group. 
    [^,]+,  # Everything but ',' at least one time (+) followed by ',' (first ','). 
)    # End of the first group. 
.*   # Everything zero or more times. 
\.   # A single '.'. 
(   # Beginning of the second group. 
[^\.]+  # Everything but '.' at least one time (this in combination with '\.' allows to find the last '.'). 
)    # End of the second group. 
$    # End of the line 

\1\2 ermöglicht mit der ersten und zweiten erfassten Gruppe zu zeigen.