正则表达式不会从Javascript转换为C#?

时间:2012-02-23 15:16:11

标签: c# javascript regex

我有一个非常简单的(imo)正则表达式,它不会转换为C#。 RegExr表示它有效,但是在C#中测试它是行不通的......我是否需要更改任何内容以使其在C#中工作?

正则表达式:

/https://subdomain[.1]domain[.1]com/(.*)(ashx|axd)/g

替换:

http://subdomain.domain.com/$1$2

输入字符串:

<script src="https://subdomain.domain.com/ScriptResource.axd?d=SQ032obz8ZDKgHbn6XZ3X4xN0iWznAgAxgrdjOtFjVj-yUo-Lk-c2r4ciOs2uasdfjiemr4ciOs2uaGYfeYrYGiemnAQT9UzGoQVKs_JPL8l7TA1LjPYKexOcr4ciOs2uar4ciOs2uaHgpZf-tDxkb_le2NhBN0&amp;t=ffffffffb868b5f4" 
type="text/javascript"></script><script type="text/javascript">
//<![CDATA[
Sys.Application.initialize();
//]]>
</script>

1 个答案:

答案 0 :(得分:2)

你的正则表达式不应该包含/和/ g。而是[.1]写。

我怀疑您只想将 https 更改为 http ,您可以这样做:

s = s.Replace("https:", "http:");

如果您想要替换域,可以使用正则表达式执行此操作:

  s = Regex.Replace(s, "https://[^/]+", "http://yourreplaced.domain.com", RegexOptions.Multiline);