替换与正则表达式模式匹配的字符串中的指定字符串 c#
Replace a specified string within a string which matches the regex pattern c#
我有一个包含以下字符串 URL 的多行文本框:
http://foodfacts.ambigouos.com
http://articles.ambigouos.com
http://www.dirtshirt.org
我想 replace/update 来自上述 URL 的字符串 http to https
,其中 ambigouos.com
作为具有 Regex 的域。
预期输出:
https://foodfacts.ambigouos.com
https://articles.ambigouos.com
http://www.dirtshirt.org
以下代码已尝试但无法正常工作:
multilinebox.text = Regex.Replace(multilinebox.text, @"^http?://[a-zA-Z]*(\.ambigouos\.com)$", "", RegexOptions.IgnoreCase);
提前致谢。
您可以利用字符串位于 行 的开头这一事实(即您应该使用 RegexOptions.Multiline
标志编译正则表达式),您不需要需要在此处检查 string/line 的结尾。此外,您需要围绕字符串的整个 non-fixed 部分设置分组结构。
如果您只需要处理行首的匹配项,请使用
Regex.Replace(multilinebox.text, @"^http://((?:[^/]*\.)?ambigouos\.com)", "https://",
RegexOptions.IgnoreCase | RegexOptions.Multiline);
如果你想处理字符串任意位置的匹配删除^
和| RegexOptions.Multiline
使用
Regex.Replace(multilinebox.text,
@"http://((?:[^/]*\.)?ambigouos\.com)",
"https://",
RegexOptions.IgnoreCase);
参见regex demo。
细纹
^
- 行首(因为使用了 RegexOptions.Multiline
)
http://
- 文字子串
((?:[^/]*\.)?ambigouos\.com)
- 捕获第 1 组:
(?:[^/]*\.)?
- /
以外的任何 0+ 个字符的可选序列,然后是 .
ambigouos\.com
- 文字子串。
您可以在取反字符class后加上\r\n
以避免跨行溢出,即[^/]
=> [^/\r\n]
.
我有一个包含以下字符串 URL 的多行文本框:
http://foodfacts.ambigouos.com
http://articles.ambigouos.com
http://www.dirtshirt.org
我想 replace/update 来自上述 URL 的字符串 http to https
,其中 ambigouos.com
作为具有 Regex 的域。
预期输出:
https://foodfacts.ambigouos.com
https://articles.ambigouos.com
http://www.dirtshirt.org
以下代码已尝试但无法正常工作:
multilinebox.text = Regex.Replace(multilinebox.text, @"^http?://[a-zA-Z]*(\.ambigouos\.com)$", "", RegexOptions.IgnoreCase);
提前致谢。
您可以利用字符串位于 行 的开头这一事实(即您应该使用 RegexOptions.Multiline
标志编译正则表达式),您不需要需要在此处检查 string/line 的结尾。此外,您需要围绕字符串的整个 non-fixed 部分设置分组结构。
如果您只需要处理行首的匹配项,请使用
Regex.Replace(multilinebox.text, @"^http://((?:[^/]*\.)?ambigouos\.com)", "https://",
RegexOptions.IgnoreCase | RegexOptions.Multiline);
如果你想处理字符串任意位置的匹配删除^
和| RegexOptions.Multiline
使用
Regex.Replace(multilinebox.text,
@"http://((?:[^/]*\.)?ambigouos\.com)",
"https://",
RegexOptions.IgnoreCase);
参见regex demo。
细纹
^
- 行首(因为使用了RegexOptions.Multiline
)http://
- 文字子串((?:[^/]*\.)?ambigouos\.com)
- 捕获第 1 组:(?:[^/]*\.)?
-/
以外的任何 0+ 个字符的可选序列,然后是.
ambigouos\.com
- 文字子串。
您可以在取反字符class后加上\r\n
以避免跨行溢出,即[^/]
=> [^/\r\n]
.