another replacement request for help
- 
 :-) those network admins … :-) 
 I don’t know how strict your rules are but maybe a solution would be to download it from github directly?
- 
 @Ekopalypse said in another replacement request for help: :-) those network admins … :-) 
 I don’t know how strict your rules are but maybe a solution would be to download it from github directly?Yeah, got it now. Had to write my user and password a hundred times, but it is installed. I am testing it now 
- 
 @Ekopalypse I want to be like you when I grow up :) 
 It worked like a charm, and faster than any regex I would believe.
 Thanks so much
 Regards
- 
 I want to be like you when I grow up LOL - be careful with your wishes sometimes they come true :-D 
- 
 haha thanks. 
 May I ask another question?
 What if I needed to change another field as well?
 For example in the image below:
  
 I find the name Aery #B1H in the file but then I need to change the Welltype from Oil to Gas (Or viceversa).
 In this case the I would not be replacing the searched word (Aery #B1H), but another field occurring later in the same entry (<Welltype>Oil to Gas)
 Thanks again
- 
 I would think this is a find/replace action. 
 Find:<UWI>Aery #B1H</UWI>\R\h*<WellType>\K.+?(?=</WellType>)
 Replace:Gas
 tick regular expressionBecause of the usage of the \Ksyntax you can only use replace all button.
- 
 @Ekopalypse said in another replacement request for help: \R\h Thanks It works, but I would need to do one by one. 
 Again I would have a list of different names (Aery #B1H, Aery #D2H, etc) so I was looking for another magic script haha
- 
 but then we would need some kind of mapping again, 
 otherwise the script does not know when to use what. :-)
- 
 So this is how the xml file looks 
  
 <Well replace=“false”>
 <UWI>Alexander Gas Unit 1 #2</UWI>
 <WellType>Oil</WellType>
 <ReserveStatusCollection>
 <Working>
 <PrimaryProduct>Oil</PrimaryProduct>
 <WellResCatCollection>and this is how the replacement file would be 
  
  
 Alexander Gas Unit 1 #2 Oil Gas
 Alexander - Wessendorff 1 A3H Oil Gas
 Alexander - Wessendorff 1 A4H Oil GasSo the script would look for the first column (Well name), and then replace the word in the second column for the one in the third column: <WellType>Oil</WellType> to <WellType>Gas</WellType> Thanks again, you’re saving my life 
- 
 Is the oil column really needed? 
 I mean, does it needs to be checked or can the script always look for company and then replace whatever is in WellType with the value from the Gas column?
- 
 Edit: 
 Thinking about, no, no need for that column
- 
 This post is deleted!
- 
 so you can get rid of the second column and the only thing we need to change is the find expression, I guess. 
- 
 from Npp import editor1, editor2 replacements = dict(line.split('\t') for line in editor2.getText().splitlines() if line) def replace_with(m): return replacements[m.group(1)] # search_for = '(?<=<UWI>).+?(?=</UWI>)' search_for = '<UWI>(.+)</UWI>\R\h*<WellType>\K.+?(?=</WellType>)' editor1.rereplace(search_for, replace_with)
- 
 btw. if you are interested how these regex search work see here for a pretty good description. 
- 
 Thanks again for your help. 
 For some reason this time it isn’t working.
 I will try and fix it. 
- 
 Can you open the PythonScript console (plugin->PythonScript->Show Console) to see if there is an error? 
 The replacement file has company and gas/oil tab separated, correct?
- 
 @Ekopalypse here is the log. 
 I think it is because not all the wells need to be changed, so the first one in the file (Aery #B1H) does not appear in the second file, so the script is stopping. I will try leaving all wells, even those that doesnt need to be changedTraceback (most recent call last): 
 File “C:\Users\AppData\Roaming\Notepad++\plugins\Config\PythonScript\scripts\find_replace.py”, line 10, in <module>
 editor1.rereplace(search_for, replace_with)
 File “C:\Users\AppData\Roaming\Notepad++\plugins\Config\PythonScript\scripts\find_replace.py”, line 6, in replace_with
 return replacements[m.group(1)]
 KeyError: ‘Aery #B1H’And yes, the other file is separated by tabs. 
- 
 Yes, that makes sense then we need to take another approach where we 
 create the searches based on the second list. Gimme a minute
- 
 from Npp import editor1, editor2 replacements = dict(line.split('\t') for line in editor2.getText().splitlines() if line) def replace_with(m): return replacements[m.group(1)] # search_for = '(?<=<UWI>).+?(?=</UWI>)' for company in replacements.keys(): search_for = '<UWI>({})</UWI>\R\h*<WellType>\K.+?(?=</WellType>)'.format(company) editor1.rereplace(search_for, replace_with)
