2010-03-24 14 views
2

Actuellement j'implémente une fonction de remplacement dans la méthode de rendu de page qui remplace les chaînes couramment utilisées - comme remplacer [cfe] par la racine du client. C'est parce que la valeur peut être différente en fonction de la version du site - par exemple la racine du dossier image ([imagepath]) est/Images sur le développement et en direct, mais/Test/Images sur le test.Remplacement de jeton

J'ai un catalogue de produits pour lesquels je voudrais changer [productName] en un lien vers la page de catalogue pour ce produit. Je voudrais parcourir toute la page et remplacer toutes les instances de [someValue] par le lien correspondant. Actuellement, je fais cela en bouclant tous les produits de la base de données du produit et en remplaçant [productName] par le lien vers la page de catalogage pour ce produit. Cependant, ceci est limité aux produits qui existent dans la base de données. Les "liens" vers les produits qui ont été supprimés ne seront pas remplacés, donc [someValue] sera affiché à l'utilisateur. Cela ne semble pas bien.

Vous devriez donc pouvoir voir mon problème. Est-ce que quelqu'un sait d'une manière de réaliser ce que je voudrais facilement? Je pourrais utiliser des regex, mais je n'ai pas beaucoup d'expérience de ceux-ci. Si c'est le moyen le plus simple, en utilisant "Pour chaque match en tant que chaîne dans Regex.Matches (blah, blah)" alors je suis prêt à regarder plus loin dans ce domaine.

Toutefois, à un moment donné, je voudrais aller plus loin - par exemple la mise en page de 3 colonnes avec une image en haut à droite en utilisant [layout type = "3colImageTopRight" imageURL = "imageURL"] Contenu ici [/ layout] . Je pense que je pourrais le faire maintenant, mais je n'arrive pas à comprendre comment gérer ça si l'imageURL était, disons, [Image: Product01.gif] (en utilisant regex.match ("[[a-zA-Z] { 0,}] ") Je pense que correspondrait juste [layout type =" 3colImageTopRight "imageURL =" [Image: Product01.gif] (il ne serait pas à la fin de la balise de mise en page.) Évidemment, ce qui précède ne fonctionnerait pas tout à fait, comme Je n'ai pas inclus de guillemets dans la chaîne de match ou quoi que ce soit, mais vous avez l'idée générale, vous devriez être capable d'avoir une idée générale de ce que je veux dire et de ce que j'essaie de faire. Si ce n'est pas un remplacement purement symbolique alors s'il vous plaît pointez-moi à ce qu'il est, afin que je puisse développer plus loin ce.

Aristos - espoir reexplainin Cela résout la confusion.

Merci à l'avance,

Cordialement,

Richard Clarke

Répondre

0

@RichardClarke - Je voudrais aller avec des expressions régulières, ils ne sont pas aussi terrible d'apprendre que vous pourriez penser et avec un peu d'utilisation prudente résoudra vos problèmes. J'ai toujours trouvé cet outil très utile.

http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx 

va bien avec une feuille de triche ;-)

http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/ 

Bonne chance.