Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式不';不能从Javascript翻译成C#?_C#_Javascript_Regex - Fatal编程技术网

正则表达式不';不能从Javascript翻译成C#?

正则表达式不';不能从Javascript翻译成C#?,c#,javascript,regex,C#,Javascript,Regex,我有一个非常简单(imo)的正则表达式,它不会翻译成C。说它有效,但是用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=SQ032obz8

我有一个非常简单(imo)的正则表达式,它不会翻译成C。说它有效,但是用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>

//

您的正则表达式不应包含/和/g。而是写

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

s = s.Replace("https:", "http:");
如果要替换域,可以使用正则表达式:

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

糟糕!!!糟糕!!您的目标字符串包含
/
(http://)!!逃离他们!!你知道,你不能在正则表达式中使用
/
而不转义它们,或者使用不同的分隔符,对吗?你能发布你的C代码吗?您给出的正则表达式也不起作用,因为协议说明符后面的
/
将只解析为正则表达式的单个
/
。有大量关于.Net正则表达式类以及如何使用它的文档。不幸的是,Regex本身并不是一种语言,在几乎每个平台上都有不同的实现。你为什么不那样做呢?为什么另一个匹配?还是要提取url?期望的输出是什么?@Shai、@knittl、@Lazarus://不是问题,仍然有效。是开头和结尾的
/
/g
导致了问题。这确实有效![.1]仍然有效,无需更换。但是,我不需要
/g
来替换所有出现的情况吗?我不需要
/g
但是我确实需要
[.1]
!显示您想要的输出,我可以进一步帮助您。为您添加了正则表达式。希望能有帮助。