Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.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# - Fatal编程技术网

C#-使用正则表达式匹配url中的几个特定单词

C#-使用正则表达式匹配url中的几个特定单词,c#,C#,我尝试制作一个只保存URL的工具,如下所示: 页码?id?id=1' http://mechanikrolniczy.cba.pl/viewtopic.php?p=16176' http://all-tubes-jenna-haze.mzs-dgd.ru/index.php?route=product&product_id=9108429' https://websetnet.net/page/40/?q=%2Fbs%2Fpage%2F40%2F&loginid=117cee5a

我尝试制作一个只保存URL的工具,如下所示: 页码?id?id=1'

http://mechanikrolniczy.cba.pl/viewtopic.php?p=16176'
http://all-tubes-jenna-haze.mzs-dgd.ru/index.php?route=product&product_id=9108429'
https://websetnet.net/page/40/?q=%2Fbs%2Fpage%2F40%2F&loginid=117cee5a78'
在第一个URL中,您可以看到:.php?p=16176'和第二个URL产品_id=9108429'

在每个URL中,它可能是不同的

所以我想用正则表达式只查找以?something=numberORwords'开头的单词 我必须确保它以'

在过去的两个小时里,我一直在尝试,但由于某些原因,我无法做到。。。我甚至想出了这样的主意:

^&/]\Wpage_id\W[=0-9]+|\W?item_id\W[=0-9]+|\W?p\W[=0-9]+\Wview\W[=0-9]+\Wno\W[=0-9]+|\Wimage_id\W[=0-9]+|\Wv\W[=0-9]+|\Wsequence\W[=0-9]+|\Wid\W[=0-9]+|\Wstart\W[=0-9]+[']
我的代码:

 string pattern = @"([?][\w]+[=][\w]+)[']";
        foreach(string s in urls)
        {
            Match m = Regex.Match(s, pattern);
            if (m.Success)
            {
                Valid.Add(s);
                Console.WriteLine(s);
            }
        }
编辑:
我试图做的是查看一个网站是否在参数后面有“at”,它可能会受到SQL注入的攻击。

此模式涵盖了上述示例中存在的所有情况

([?][\w]+[=][\w]+)?([&][\w]+[=][\w]+)*[']

我们正在寻找以下条件:

  • ?someWord=numbersOrletters
    (第一个捕获组)
  • &someWord=numbersOrletters
    (第二个捕获组)
  • 字符结尾(final子句)
如果对字符串进行了修剪和清理,则可以在模式的末尾添加一个
$
,以确保
'
位于字符串的最末端

我用它来构建和测试这些东西,这是一个非常有用的工具


编辑:此模式捕获您发布的第二个URL中的子字符串
route=product
。如果要避免这种情况,请将模式更改为搜索数字字符串
\d
,而不是单词
\w
(单词也可以包含数字,但数字不能包含字母字符).

考虑使用框架库例程:哦,好的:)但如何使用正则表达式呢?这是一个可靠的答案,应该被选为正确答案。哦,我使用了regex101,由于某种原因,我现在无法获取任何URL,我将编辑问题并显示我的代码似乎你没有在代码中包含整个表达式,而且你添加的最后一个url没有以
字符结尾,如果你想使该条件成为可选条件,请添加一个?我把整个问题搞砸了,我试图做的是检查网站是否有“在参数之后,它可能会受到SQL注入的攻击,但我认为我需要发送web请求或其他东西,而不是检查文本文件中的URL。这不是发布关于如何针对SQL注入服务器的建议的合适网站。