Hi Thomas F. and Michael,
many thanks for the clues! I think got a bit closer on the thing ;)
Probably I misunderstand regexps() (and struggle with the ClassAd syntax):
does regexps() replaces the whole target string or just the matching
sub-string when it matches the string...?
Thing is, that a transform like [1] matches an input requirement like
  Requirements = ( OpSysAndVer =?= "SL6" ) && ( TARGET.Arch == "X86_64" )
but the resulting requirement is the whole target replaced by the substitute
  Requirements = "OpSysAndVer == CentOS7"
also: it's a string :(
I tried already to explicitly
  eval_set_requirement = eval( regexps(...) )
or to
  set_requirement = eval(regexps(...))
but to no avail.
Additionally, I struggle still with the regexp evaluation in Condor (and
in general) [2]
Maybe somebody as another nudge into the right direction for me? ;)
Cheers and thanks,
  Thomas
[1]
JOB_TRANSFORM_NAMES = $(JOB_TRANSFORM_NAMES) FOOFORM
JOB_TRANSFORM_FOOFORM @=end
[
# first check if we have an SL6 job before proceeding
Requirements = regexp("OpSysAndVer\\s*==\\s*\"SL6\"",
unparse(Requirements));
# and if so, scan for the expression and replace it
eval_set_Requirements = regexps("OpSysAndVer == \"SL6\"",
unparse(Requirements), "OpSysAndVer == CentOS7");
]
@end
[2]
(unfortunately, I am not a regexpert :-[ )
I would like to match '==' as well as '=?=', e.g.,
  > OpSysAndVer == "SL6"
or
  > OpSysAndVer =?= "SL6"
so, I have to match the white spaces around '==' with \s (as far as I
see, backslashes have to be escaped in the syntax)
Next, I have to match none or one occurence of '?'
Sooo, something like '(?)?' (or so decorated with \) should match - but
I have not managed to get something like
  > regexp("OpSysAndVer\\s*=(?)?=\\s*\"SL6\"", unparse(Requirements));
to match both cases '==' and '=?='
Another confusing thing is, that while for the '==' case regexp()
  > regexp("OpSysAndVer\\s*==\\s*\"SL6\"", unparse(Requirements));
seems to match True on 'OpSysAndVer == "SL6"' -- the same expression
with regexps()
  > regexps("OpSysAndVer\\s*==\\s*\"SL6\"", unparse(Requirements),
"OpSysAndVer == CentOS7");
seems not match -- and returns 'error'
On 2018-10-10 18:51, Michael Pelletier wrote:
> Thomas Finnern for the win! Iâve never had occasion to use that function. Page 508 of the manual, in case anyone was wondering.
> 
> Michael V. Pelletier
> Information Technology
> Digital Transformation & Innovation
> Integrated Defense Systems
> Raytheon Company
> 
> From: HTCondor-users [mailto:htcondor-users-bounces@xxxxxxxxxxx] On Behalf Of Finnern, Thomas
> Sent: Wednesday, October 10, 2018 12:44 PM
> To: HTCondor-Users Mail List <htcondor-users@xxxxxxxxxxx>
> Subject: [External] Re: [HTCondor-users] job transform: change requirement condition?
> 
> Hi Thomas,
> have you tried to replace the BaseRequirements by an unparse(BaseRequirements) within the regexprs ?
> Cheers, Thomas
> 
> Von meinem Mobiltelefon gesendet
> 
> 
> _______________________________________________
> HTCondor-users mailing list
> To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
> subject: Unsubscribe
> You can also unsubscribe by visiting
> https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users
> 
> The archives can be found at:
> https://lists.cs.wisc.edu/archive/htcondor-users/
> 
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature