J'ai un bloc de code HTML qui compte environ 156 liens de site Web. Comment puis-je continuer à convertir le lien vers un lien HTML?
p>
<a href="https://siteA.com/xyA" target="_blank">https://siteA.com/xyA</a> <a href="https://siteB.com/xyB" target="_blank">https://siteB.com/xyB</a> <a href="https://siteC.com/xyC" target="_blank">https://siteC.com/xyC</a> <a href="https://siteD.com/xyD" target="_blank">https://siteD.com/xyD</a>
3 Réponses :
Si vous appuyez sur Le Ctrl + H Code> dans VSCode qui ouvrira le panneau Rechercher et remplacer, entrez
(. *) \. CODE> dans l'entrée de recherche, activez la touche REGEX et entrez
1 $ code> dans l'entrée Remplacer. Devrait être capable de les remplacer tous à la fois. P>
(. *) \. code> Regex prend quelque chose sur la ligne qui se termine par une période et met l'URL (sans période) dans un groupe de capture. Dans le remplacement, nous utilisons
1 $ code> pour insérer le groupe de capture dans le texte de remplacement. P>
Cela échouera à cause du point du nom de domaine!
@csabinho J'ai littéralement le rancouvert sur ma propre machine, si chaque URL est sur sa propre ligne (comme dans l'exemple), elle ne manquera absolument pas.
J'ai réalisé que cela passe, car . * Code> est gourmand!
@csabinho Ouais, mais la performance d'une simple chaîne Remplacer dans l'éditeur n'est pas très importante, il est donc plus important que cela soit plus important imo. Quelque chose qui allait être dans le prod ne devrait pas être aussi gourmand si nécessaire, bien que
Bien sûr. Cela n'a aucun sens de confondre les gens avec des regex code> es!
Ça fait quelque chose de différent. Permettez-moi de jouer un peu plus.
Explication: P>
L'expression entière sera placée entre parenthèses pour capturer le nom de domaine en tant que groupe et remplacé dans la seconde regex. P> (https: \ / \ /.*? \ .. *?) \. code> doit être remplacé par
$ 1 < / a> code> avec tout outil que vous utilisez. p>
https: \ / \ / code> devrait être clair, car il est littéral! P>
. *? \ .. *? \. \
Je suis nouveau au développement et c'est ma première réponse. Je ne comprends pas ce que vous entendez par «https: //» et «». » comme identifiants? Donc, ce que j'ai fait est essentiellement supposé que vous aviez un bloc de code quelque part sur votre page. HTML:
//get data from the HTML <code> block //filter out whitespace var data = []; data = document .getElementById("codeBlock") .innerHTML.split(/\s+/) .filter(e => e.length > 1); for (var i = 0; i < data.length; i++) { //create <a> tag and set attributes var para = document.createElement("a"); para.setAttribute("href", data[i]); para.setAttribute("target", "_blank"); var node = document.createTextNode(data[i]); para.appendChild(node); //append it to HTML front end document.getElementById("linkOutput").appendChild(para); } /* got some inspiration here: https://blog.abelotech.com/posts/split-string-into-tokens-javascript/ https://www.w3schools.com/js/js_htmldom_nodes.asp */
L'affiche originale recherche une solution avec regex, car cela peut être utilisé à l'intérieur des recherches.
Quelle langue utilisez-vous pour faire cela?
@Evert, il fait cela dans le code Visual Studio et Notepad ++, comme mentionné ci-dessus!
Une autre chose que j'ai reliée lors de la gestion de la regex à travers les scripts, c'est que une partie de l'URL a plusieurs périodes dans elles. Comme Sited.com/xyd.abc.efg . ou Sited.com/xyd.abc.efg.yyy-y.pqr A> Les peiords de l'URL peuvent être entre 1 et 4. Couple des scripts ne saisissaient pas l'URL complète.