Именно из-за этого в вашем регулярном выражении:
...a.com-->([^\]]+)<--
Вы пытаетесь сопоставить все, что не является ]
, один или несколько раз в вашем вводе. И поскольку на вашем входе вообще нет ]
, он проглатывает все (да, даже переводы строк), но должен вернуться назад, чтобы удовлетворить остальную часть вашего регулярного выражения, что означает, что он возвращается к last вхождение " target="_blank" ....
.
Если вы хотите заменить rel="nofollow"
и разрешить любой путь за http://www.scirra.com
, вы можете использовать это регулярное выражение вместо:
(<a href="http://www\.scirra\.com((/[^/"]+)*/?)" target="_blank" )rel="nofollow">
и заменить это на:
$1title="Some value insert here">
Скопируйте / вставьте ваш текущий код:
Dim regEx
Set regEx = New RegExp
' BB code urls
With regEx
.Pattern = "(<a href=""http://www\.scirra\.com((/[^""/]+)*/?)"" target=\""_blank\"" )rel=\""nofollow\"">"
.IgnoreCase = True
.Global = True
.MultiLine = True
End With
strMessage = regEx.Replace(strMessage, "$1title=""Some value insert here"">")
Обратите внимание, что в замененных URL это довольно ограничительно. Например, есть ли вероятность, что целевой контент будет чем-то другим, или что есть больше атрибутов?