Kurze Antwort: Nicht mit einem Regulären Ausruck alleine.
Längere Antwort: Klare Beispiele sind besser als Pseudo-Code mit xx und yy. Grundsätzlich ist ein Regulärer Ausdruck ein Automat, der Muster findet. Er “ersetzt” nichts.
Das kann nur eine Funktion tun, die den regulären Ausdruck verwendet. DT bietet das in relativ simpler Form an, indem es den Zugriff auf die capturing groups in seinen Text-Aktionen erlaubt. Damit lässt sich aber das von Dir Gewünschte mE nicht realisieren: DT bietet keine Möglichkeiten, z.B. mit einer lookup table aus xx eben yy zu machen.
Du wirst also ein Script schreiben müssen. Ein relativ aufwendiges habe ich hier mal gepostet (Using a single smart rule instead of Hazel (maybe)), das geht aber weit über die Namensänderung hinaus.
Grundsätzlich würde ich das in JavaScript (! ich fasse AppleScript nicht an, und es ist für reguläre Ausdrücke auch denkbar schlecht geeignet) so machen als externes Script in einer smart rule:
function performsmartrule(records) {
const lookuptable = {
"Telefon" : /Telekom|Vodafone/,
"Arzt" : /Dr\.\s+med\./,
"Bank" : /ING|DKB/
};
records.forEach(r => {
Object.keys(lookuptable).forEach(ersetzung => {
const muster = lookuptable[ersetzung];
if (muster.test(r.plainText())) {
r.name = ersetzung + ' ' + r.name();
}
})
})
}
Das ist jetzt ein sehr verkürztes und vereinfachtes Beispiel. Es ändert z.B. bei jedem Dokument mit “Dr. med.” im Text den Namen zu “Arzt ”. Analog mit “Telekom oder Vodafone” => “Telekom” und “ING oder DKB” => “Bank”. In der Praxis willst Du vermutlich nicht den alten Namen, sondern etwas selbst Gebautes wie “Arzt Befund” haben.
Das wiederum kann eine smart rule erledigen, aber ich würde es auch im Script machen, weil ich das ja eh brauche. Aber das ist Geschmackssache.