dayalı bir dize içeriğinizi değiştirin Ben bu gün için RegEx üzerinde çalışıyordum ya da öylesine ben çalıştım veriyorum, böylece istediğim veriyi döndürür. Önce biraz arka plan.Regex.Matches MatchCollection
Kullanıcıların web sayfalarını düzenleyebilecekleri bir içerik düzenleyicim var. Metni biçimlendirebilir, bağlantılar ekleyebilirler, vb. Standart içerik editörü şeyler. Kaydetmeyi tıkladıklarında editör, içeriği (editor.Content) alma ve bir dizeye koyma yeteneği sağlar. Yapmak istediğim şey, herhangi bir bağlantı (<a>
etiketi) almak ve iç veya dış bağlantılar olup olmadığını ve PDF dosyaları olup olmadığını öğrenmek. İşte
<a\b[^<>]*href\s*=\s*[\""\'](?<domain>https?:\/\/[^\/\s\'\""]*)*\/?(?<path>\/?[^\s\""]+?)?[[>\""\']
ve yolu dışarı (eğer varsa). Sonra maç üzerinden, ben döngü ...
dim matchColl as MatchCollection = Regex.Matches(editorContent, regExString)
For Each m as Match in matchColl
If m.Groups("domain").value <> myInternalDomain and m.Groups("domain").value <> "" then
'this is an external domain... do some stuff
End If
If m.Groups("path").value.EndsWith(".pdf") then
'it is a pdf, do some other stuff...
End if
Next
Sorum şudur ... Ben parça değerlere 'bazı şeyler', n 'geri gözlerimin içine almak için en iyi yolu olacağını editorContent 'dizesi? Muhtemelen editorContent'i bir StringBuilder'a koyabilirim ve üzerinde bir sürü değişiklik yapabilirim, ama bu çok verimli mi? Örneğin, PDF ile, yeni bir pencerede (target = "_ blank") açılmasını ve harici URL için onclick özniteliğine bazı javascript kodu eklemeyi belirtmek istiyorum.
Herhangi bir fikir harika olurdu!
Teşekkürler!
... [Bu regex HTML ile eşleşir.] (Http://stackoverflow.com/a/1732454/5458362) ... – Riker