我可以使用正则表达式获取我感兴趣的字符串,但是如何用捕获中替换的字符替换它呢?
我想>
从任何html属性中删除字符,或将其替换为>
。
示例原始字符串
<html>
<head></head>
<body>
<div sometag="abc>def" onclick="myfn()" class='xyz'>
Dear {@CustomerName},
blah blah blah
</div></body>
</html>
所需结果
<html>
<head></head>
<body>
<div sometag="abc>def" onclick="myfn()" class='xyz'>
Dear {@CustomerName},
blah blah blah
</div></body>
</html>
我正在使用以下正则表达式模式和替换
模式:\s\w+\s*=\s*(['"])[^\1]+?\1
更换:-- don't know! what should I use? --
这是我的vb.net
代码(以防万一)
Dim reAttr As New Regex("\s\w+\s*=\s*(['""])[^\1]+?\1", RegexOptions.Singleline)
result = reAttr.Replace(text, Replace("$&", ">", ""))
您可以使用
Dim reAttr As New Regex("\s\w+\s*=\s*(['""])(?:(?!\1).)*?\1", RegexOptions.Singleline)
Dim result = reAttr.Replace(text, New MatchEvaluator(Function(m As Match)
Return m.Value.Replace(">", "-")
End Function))
请注意,[^\1]
它没有按照您的期望进行操作,它匹配任何字符,但匹配SOH字符(\x01
)。该(?:(?!\1).)*?
回火贪婪令牌做你想要的东西,它的任何字符,比第1组,0次或多次捕捉到的值等,尽可能少的时间尽可能一致。
将MatchEvaluator
被用作替换的参数,你可以访问整个匹配值m.Value
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句