Så här kanske
res = Regex.Replace(txt, "<img src=\"(?![url]http://)([/url][^\"]+)\" />", "<img src=\"http://www.test.com/$1\" />", RegexOptions.IgnoreCase);
8 svar · 488 visningar · startad av Jon
Försöker knepa ihop ett regexp i c#.
Vill byta ut allt innehåll i src i alla <img taggar i en textmassa
Exempel:
<img src="test.jpg" /> ska bli <img src="http://www.test.com/test.jpg" />
Lyckas bara att få ut själva <img-taggarna. Kan ju parsa manuellt därifrån i varje match men det vore fräsigt att få ihop det i ett regexp
Några tips?
Så här kanske
res = Regex.Replace(txt, "<img src=\"(?![url]http://)([/url][^\"]+)\" />", "<img src=\"http://www.test.com/$1\" />", RegexOptions.IgnoreCase);
Väldigt nära!
Behöver dock få med så att det låter attribut som sitter efter (och helst innan) vara kvar.
Dvs jag vill kunna gör samma sak med följande url:er
<img src="test/test.jpg" width="200" height="165" /> och
<img width="200" height="165" src="test/test.jpg" />
resultaten jag önskar är såklart:
<img src="http://www.test.com/test/test.jpg" width="200" height="165" />
<img width="200" height="165" src="http://www.test.com/test/test.jpg" />
res = Regex.Replace(txt, "<img ((?:(?!src)[a-z]+="[^"]+" )*)(?:src="(?![url]http://)([/url][^"]+)" )((?:(?!src)[a-z]+="[^"]+" )*)\/>", "<img $1src=\"http://www.test.com/$2\" $3/>", RegexOptions.IgnoreCase);
Men Jon!
Du borde väl vara tillräckligt gammal i gemet för att veta att det är inlägget med lösningen som ska accepteras som slutgiltigt svar?
Jodå det vet jag!
Men jag kunde inte acceptera den posten av någon anledning (kanske för att det inte fanns text utan bara ett <code> - stycke?) Hursomhelst så tyckte jag att det var bättre att flagga mitt inlägg än inget alls
Men jag kunde inte acceptera den posten av någon anledning (kanske för att det inte fanns text utan bara ett <code> - stycke?)
Du måste skoja? Har du ingen länk längst till höger i det megabreda inlägget (du kanske måste scrolla?).
Hursomhelst så tyckte jag att det var bättre att flagga mitt inlägg än inget alls
Jepp!
Nu gick det - ordningen återställd på det världomspännande datanätet "internet"!
Måste ha varit något tillfälligt fel i browsern, min hjärna eller kanske både och