Предположим, этот шаблон для замены всех URL в строке
string domains = "(gl|me|com|ir|org|net|edu|info|me|ac|name|biz|co|pro|ws|asia|mobi|tel|eu|in|ru|tv|cc|es|de|ca|mn|bz|uk|us|au)";
string pattern = @"([\n ]|^)?(((https?|ftp)://)?(www\.)?([\w\d-]+\.)+" + domains + @"([/][\w\d_~:?#@!%$&'()*+,;=`\[\]\.\-]+)*)([\n ]|$)?";
Я хочу заменить все URL тегом _URL_
, но оставить разделители слева и справа от строки.
Как я знаю, $1
относится к ([\n ]|^)?
в начале шаблона, но я не смог найти правильное число для ([\n ]|^)?
в конце шаблона!
Regex.Replace(data, pattern, "$1_URL_$?"); // what should be replaced by ?
Я проверил на $ 2- $ 8, и никто не был прав.
Есть ли какое-то конкретное правило для таких ситуаций?