J'essaie d'écrire essentiellement un mappeur d'URL sortant afin de pouvoir remplacer un flux d'URL contenant des URL pour pointer vers mon CDN. Je ne peux pas utiliser le module de réécriture d'URL IIS comme j'utilise la compression. J'ai actuellement un regex qui correspond à un sous-dossier pour un à-dire de type de fichier spécifiqueURL correspondant à Regex par sous-dossier
Regex ASSET_PATH = new Regex(@"(?i)assets/([A-Za-z0-9\-_/.]+)\.(jpg|jpeg|bmp|tiff|png|gif|js|css|mov|mp4|ogg|avi|mp3)", RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
Cela fonctionne très bien et me permet de manipuler quoi que ce soit dans la chaîne à partir de ce moment-là (ie de « actifs/» à compter du droite). Qu'est-ce que je dois réaliser est de manipuler la chaîne à gauche du sous-dossier "assets /", sans nécessairement connaître le format? Voici quelques exemples:
<img src="./assets/123/pig.jpg" />
<img src="http://mysite.blah/assets/123/pig.jpg" />
<img src="http://www.mysite.blah/assets/123/pig.jpg" />
<img src='assets/123/pig.jpg' />
dans des styles css/inline:
background-image : URL('assets/123/pig.jpg')
background-image : URL(http://www.mysite.blah/assets/123/pig.jpg)
De toute façon, je pense que vous obtenez l'image. Je veux essentiellement être capable de regarder à la "gauche" du mot "actifs" jusqu'à ce que je puisse trouver le point de départ logique de l'URL et ensuite manipuler à partir de là pour pointer vers mon CDN.
Je ne suis pas sûr que cela est possible regex, donc des suggestions en utilisant une combinaison de regex/C#/HTML Agilité Pack sont les bienvenus
Vous avez écrit 'RegexOptions.IgnoreCase' deux fois. Il ne résoudra rien, ça me dérange .. – Olian04
Je ne suis pas sûr de vous avoir compris. Voulez-vous dire comme [ceci] (https://regex101.com/r/IwHWCJ/1)? – Olian04
@ Olian04 - C'est juste une faute de frappe (RegexOptions.IgnoreCase), peut-être que je devrais le laisser là pour vous piéger pour toujours ... LOL :-) –