【发布时间】:2018-06-30 04:16:37
【问题描述】:
假设此模式用于替换字符串中的所有 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_ 标记替换所有网址,但将分隔符保留在字符串的左右两侧。
据我所知,$1 指的是模式开头的([\n ]|^)?,但我找不到模式末尾的([\n ]|^)? 的正确数字!
Regex.Replace(data, pattern, "$1_URL_$?"); // what should be replaced by ?
我测试了 2-8 美元,没有一个是正确的。
这种情况有什么具体的规定吗?
【问题讨论】:
-
[\w\d_
_中不需要,因为\w已经包含它。