C# 我的自定义URL的正则表达式
你好 我无法为我的url创建正则表达式: any-any.test.test2.com或所有CAP 还是所有的帽子 还是所有的帽子 有人可以帮我怎么做一个正则表达式,可以接受这个网址的。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
有用链接: 注:任何方式用户都可以输入任何字符,任何字符后都必须有“-”,然后所有字符都必须包含:
.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