gpt4 book ai didi

C# regex 转换类似于 python

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:06 31 4
gpt4 key购买 nike

如何使用 C# 中的正则表达式转换 # 中的 url,类似于此 python 代码

import re
url = http://active.com
url1 = re.sub(r'(^htt[^\/]*\/\/)(.*)',r'\1www\.$2',url)

输入:

http://active.com

预期输出:

http://www.active.com

还有我怎样才能通过www.来自 c# 中的变量

例如

string domain_part = "www."

那么我必须在转换中使用上面的变量?

最佳答案

在 C# 中,Regex.Replace相当于 Python 的 re.sub 。请注意反向引用样式不同:\1 Python 中的替换字符串是 $1 (并且 \g<1>${1} )在 C# 中。

C# 中的原始字符串文字有 @""表示法(相当于 Python 中的 r'')。

你可以使用

//var url = "http://www.active.com"; // http://www.active.com
var url = "http://active.com"; // http://www.active.com
var domain_part = "www.";
var regex = new Regex(string.Format(@"(^htt[^/]*//)(?!{0})(.*)", Regex.Escape(domain_part)));
var res = regex.Replace(url, "$1" + domain_part + "$2");
Console.WriteLine(res);

请参阅IDEONE demo

说明:

  • Regex.Escape(domain_part)对在正则表达式中使用的文字字符串进行转义
  • (^htt[^/]*//)(?!{0})(.*)包含否定的前瞻,如果字符串中已经存在domain_part,则匹配失败
  • "$1" + domain_part + "$2"插入动态域部分。

关于C# regex 转换类似于 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37294167/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com