我有一个包含多个href标签的字符串,例如:
href =“HTTPS://www.example.com”和href =“hTtp://www.example.com”
我需要将其更改为小写,例如:
href =“https://www.example.com”和href =“http://www.example.com”
我需要使用下面的代码来实现它:
Dim strRegex As String = "<?href\s*=\s*[""'].+?[""'][^>]*?"
Dim myRegex As New Regex(strRegex, RegexOptions.IgnoreCase)
For Each myMatch As Match In myRegex.Matches(StringThatContainsHrefTags)
If myMatch.Success Then
Dim pattern As String
pattern = "http(s)?://([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\'\,]*)?"
If Regex.IsMatch(myMatch.ToString(), pattern) Then
'what do I do here?
End If
End If
Next
答案 0 :(得分:0)
如果您不想解析HTML内容,可以这样做。
Dim Input As String = "something <a href=""hTTpS://xxx"">asdf</a> and then <a href=""HttP://xxx"">asdf</a>"
Dim Output As String = Regex.Replace(Input, "<a\s+[^>]*href=""(?<Protocol>https?):", New MatchEvaluator(Function(X) X.Value.ToLower), RegexOptions.IgnoreCase)
这将只处理HTTP / HTTPS部分。您可以将正则表达式扩展到整个URL,并根据需要从代码中执行其他验证。 代码中的快捷方式只需要正则表达式中的一对大括号。否则在X.Groups中进行一些调整(&#34; Protocol&#34;)。将需要值。