<div dir="ltr">Interesting idea, certainly not crazy. I'm not sure what's possible with regex libs commonly used with MapServer builds. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 27, 2021 at 6:34 AM Trond Michelsen <<a href="mailto:trondmm-mapserver%2B2017@crusaders.no">trondmm-mapserver+2017@crusaders.no</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This sounds like a good idea to me, but I would suggest to use named<br>
capture groups. In perl, this uses this syntax: (?<name>pattern). So,<br>
in this example, it could be:<br>
<br>
"datetime" "^(?<year>[0-9]{4})[-_](?<month>[0-9]{2})[-_](?<day>[0-9]{2})$" # <- 3 capture groups<br>
<br>
And the result could then be used in substitution as: %year%, %month%<br>
and %day%. Maybe with an added prefix, but I'd prefer without, tbh.<br>
<br>
On Tue, Jul 27, 2021 at 06:12:44AM +0000, Sommer, Ashley (L&W, Dutton Park) wrote:<br>
> Hi All,<br>
> This is slightly related to my previous thread today, but more general.<br>
> <br>
> I want to gauge interested in this idea.<br>
> I want to be able to use Runtime Substitution mechanisms to do something like this:<br>
> <br>
> MAP<br>
>   ...<br>
>   VALIDATION<br>
>     "datetime" "^([0-9]{4})[-_]([0-9]{2})[-_]([0-9]{2})$" # <- 3 capture groups<br>
>   END<br>
> <br>
>   LAYER<br>
>     DATA "/mnt/dataset/%datetime_1%/%datetime_2%/%datetime_3%.tif"<br>
>     ...<br>
>   END<br>
>   ...<br>
> END<br>
> <br>
> Where the query with &datetime=2018-01-29 is split into parts using capture groups 1, 2, and 3 from the validation regex, and stored as new runtime substitution variables: %datetime_1%, %datetime_2%, and %datetime_3%.<br>
> Then using these values, substitute them into the DATA string (or any other valid substitution point).<br>
> Substituted:<br>
> DATA "/mnt/dataset/2018/01/29.tif"<br>
> <br>
> The regex mechanism to validate the incoming parameter value is already in place, and it seems like just one more little step is needed to save the captured groups into new runtime substitution variables.<br>
> <br>
> - Ashley Sommer<br>
<br>
> _______________________________________________<br>
> mapserver-users mailing list<br>
> <a href="mailto:mapserver-users@lists.osgeo.org" target="_blank">mapserver-users@lists.osgeo.org</a><br>
> <a href="https://lists.osgeo.org/mailman/listinfo/mapserver-users" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/mapserver-users</a><br>
<br>
<br>
-- <br>
Trond Michelsen<br>
_______________________________________________<br>
mapserver-users mailing list<br>
<a href="mailto:mapserver-users@lists.osgeo.org" target="_blank">mapserver-users@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/mapserver-users" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/mapserver-users</a><br>
</blockquote></div>