Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
C# 我的自定义URL的正则表达式_C#_Regex_Url_Routes - Fatal编程技术网

C# 我的自定义URL的正则表达式

C# 我的自定义URL的正则表达式,c#,regex,url,routes,C#,Regex,Url,Routes,你好 我无法为我的url创建正则表达式: any-any.test.test2.com或所有CAP 还是所有的帽子 还是所有的帽子 有人可以帮我怎么做一个正则表达式,可以接受这个网址的。 有用链接: 注:任何方式用户都可以输入任何字符,任何字符后都必须有“-”,然后所有字符都必须包含: .test.test2.com或 .TEST.TEST2.COM 最后。试试这个: (http(s)?:/)?.+-.+.test.test2.com 有一个有用的开源工具: 尝试以下模式: var patt

你好

我无法为我的url创建正则表达式:

any-any.test.test2.com或所有CAP

还是所有的帽子

还是所有的帽子

有人可以帮我怎么做一个正则表达式,可以接受这个网址的。
有用链接:

注:任何方式用户都可以输入任何字符,任何字符后都必须有“-”,然后所有字符都必须包含:
.test.test2.com或
.TEST.TEST2.COM
最后。

试试这个:

(http(s)?:/)?.+-.+.test.test2.com

有一个有用的开源工具:

尝试以下模式:

var pattern = "(?i)(https?://)?.+-.+(.test.test2.com)"
用法:

var test1 = "any-any.test.test2.com";
var test2 = "ANY-ANY.TEST.TEST2.COM";
var test3 = "http://any-any.test.test2.com";
var test4 = "https://any-any.test.test2.com";

var result1 = Regex.Match(test1, pattern);
var result2 = Regex.Match(test2, pattern);
var result3 = Regex.Match(test3, pattern);
var result4 = Regex.Match(test4, pattern);

Console.WriteLine(result1);
Console.WriteLine(result2);
Console.WriteLine(result3);
Console.WriteLine(result4);
输出:

any-any.test.test2.com
ANY-ANY.TEST.TEST2.COM
http://any-any.test.test2.com
https://any-any.test.test2.com

vim中的一个简单正则表达式模式 …-…test.test2.com\c

这将匹配 “any.test.test2.com”;
“ANY-ANY.TEST.TEST2.COM”

我不是C#guru,但我建议您使用一个库来解析URL,然后只检查实际代码中感兴趣的组件。@TimBiegeleisen抱歉,您可以详细说明一下吗?我想说的是,与其尝试编写一个URL正则表达式来覆盖您可能遇到的所有边缘情况,相反,使用一个URL库,它公开了一个你可以调用的接口来获取和检查各种组件。@TimBiegeleisen我已经尝试过UriKind,但它没有满足我的期望,所以我认为regex是我要找的。谢谢。如果您设置了正确的选项,我如何从(any.test.test2.com)中删除“any”,因为它也应该是任意字符。这就是您需要的吗?“(?i)(https?:/)?[a-z]*-[a-z]*(.test.test2.com)”是的,谢谢,如果可以的话,你能给我解释一下吗?(?i)”部分使它不区分大小写;(https?:/)?阻止测试“http://”、“https://”或它们中的任何一个(因为“?”);[a-z]*部分接受后跟“-”的任何字符和任何字符的另一个[a-z]*块(在本例中,“*”表示前面部分的零个或多个字符:[a-z]);最后一部分确保它必须以“.test.test2.com”结尾,[a-z]与数字tho不匹配。更新了我的答案,使“任意”部分接受任意字母数字字符
any-any.test.test2.com
ANY-ANY.TEST.TEST2.COM
http://any-any.test.test2.com
https://any-any.test.test2.com