J'ai une chaîne comme
Pakistan, officially the <a href="Page.aspx?Link=Islamic Republic of Pakistan">Islamic Republic of Pakistan</a>
Comment puis-je éviter un modèle de chaîne spécifique d'être remplacé par Regex.Replace()
Maintenant, je suis en utilisant
System.Text.RegularExpressions.Regex.Replace(inputText, "(\\bPakistan\\b)", "something");
pour remplacer le Pakistan en dehors des balises. Mais je ne veux pas remplacer le Pakistan sur les étiquettes <a></a>
.
Edit: une chaîne réelle
Pakistan (ourdou: پاکستان), officiellement la République islamique du Pakistan, est un pays en Asie du Sud. Il a un 1046 km (650 mi) côte le long de la mer d'Oman et le golfe d'Oman dans le sud et est bordée par l'Afghanistan et de l'Iran à l'ouest, Inde à l'est et la Chine dans l'extrême nord-est. [6] Le Tadjikistan se trouve également à très proche du Pakistan mais est séparé par le couloir étroit Wakhan .
et un tableau de chaînes
string[] links={"Pakistan","Islamic Republic","Republic of Pakistan","South Asia","Arabian Sea","Gulf","Oman","Gulf of Oman","the south","in the south","Afghanistan","Iran","the west","in the west","west India","the east","China","Tajikistan","the narrow","Wakhan Corridor","Central Asia","the Middle","Middle East","the Middle East"}
Je veux remplacer toutes les occurrences de chaque chaîne dans ce tableau avec <a href="page.aspx?link=thisString">thisString</a>
. et je ne pouvais pas ajouter correctement des liens à des chaînes comme "République du Pakistan" où le Pakistan est aussi une autre chaîne dans ce tableau.
Peut-être pas très efficace mais facile à comprendre et à mettre en œuvre. Merci –
Je l'ai utilisé comme ceci inputText = Regex.Replace (inputText, @ "(? <= \ <\ S * a [^ <] +) \ bStringToReplace \ b (? =. *? \>)", "DBPT "); inputText = System.Text.RegularExpressions.Regex.Replace (inputText, "(\\ bStringtoReplace \\ b)", Remplacement); inputText = Regex.Replace (inputText, @ "(? <= \ <\ s * a [^ <] +) \ bDBPT \ b (? =. *? \>)", StringtoReplace) –