Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Asp.net 正则表达式与第[0-9]页匹配,前后无任何内容_Asp.net_Regex_C# 4.0 - Fatal编程技术网

Asp.net 正则表达式与第[0-9]页匹配,前后无任何内容

Asp.net 正则表达式与第[0-9]页匹配,前后无任何内容,asp.net,regex,c#-4.0,Asp.net,Regex,C# 4.0,我有一个正则表达式,但它不是我想要的那样工作 page[0-9]* /pages/search.aspx?pageno=3&pg=232323&hdhdhd/page73733/xyz 在上面的例子中,我只想匹配Page733。但是我的正则表达式与/pages中的页面匹配,它与pageno=3中的页面匹配 我还尝试了第[0-9].*页,然后它匹配第733页,但它也匹配后面的所有内容,因此它实际上匹配第733页/xyz页 这似乎是我想要的,但这也是一种丑陋的方式。另外,如果我有

我有一个正则表达式,但它不是我想要的那样工作

page[0-9]*

/pages/search.aspx?pageno=3&pg=232323&hdhdhd/page73733/xyz
在上面的例子中,我只想匹配Page733。但是我的正则表达式与/pages中的页面匹配,它与pageno=3中的页面匹配

我还尝试了第[0-9].*页,然后它匹配第733页,但它也匹配后面的所有内容,因此它实际上匹配第733页/xyz页

这似乎是我想要的,但这也是一种丑陋的方式。另外,如果我有像/page123/xyz/page456这样的东西,它将匹配整个字符串


那么,有没有更好的方法?我只想在字符串页面后面跟任意数字时匹配该页面,如果数字后面有任何内容,则该页面应停止。

如果我正确理解您的问题,您只需向原始正则表达式中添加$即可指定在页面后面要结束该字符串。所以正则表达式是

page[0-9]*$
此外,这也将匹配以页结尾的字符串,如果您只希望以页结尾的字符串后跟任意数字,请使用此正则表达式

page[0-9]+$

如果我正确地理解了您的问题,您只需要向原始正则表达式中添加$,以指定在页面之后希望字符串结束。所以正则表达式是

page[0-9]*$
此外,这也将匹配以页结尾的字符串,如果您只希望以页结尾的字符串后跟任意数字,请使用此正则表达式

page[0-9]+$
*表示0次或多次出现。+指一次或多次出现

第[0-9]页+应该有效。

*表示0次或多次出现。+指一次或多次出现

page[0-9]*
第[0-9]页+应该有效

page[0-9]*
将匹配页面,后跟零个或多个数字。你想要的是:

page[0-9]+
这将匹配后面有一个或多个数字的页面

将匹配页面,后跟零个或多个数字。你想要的是:

page[0-9]+
它将匹配后面跟一个或多个数字的页面。

正则表达式页面[0-9]*将匹配[0-9]0次或更多次。+将匹配它1次或多次,并且?将匹配0或1次。与?+*等效的方法如下:

?={0,1} *={0,} +={1,} 如果您想匹配日期,这可能会有所帮助:\\d{4}-\\d{1,2}{2},这将匹配2013-5-31

-

也就是说,针对您的特定问题生成的正则表达式是:

第\\d页+ 第\\d{1,}页 第[0-9页]+ 或第[0-9]页{1,} 在您的示例/page123/xyz/page456中,您可能希望匹配所有引用,因此不要忘记g或全局修饰符。

正则表达式页面[0-9]*将匹配[0-9]0次或更多次。+将匹配它1次或多次,并且?将匹配0或1次。与?+*等效的方法如下:

?={0,1} *={0,} +={1,} 如果您想匹配日期,这可能会有所帮助:\\d{4}-\\d{1,2}{2},这将匹配2013-5-31

-

也就是说,针对您的特定问题生成的正则表达式是:

第\\d页+ 第\\d{1,}页 第[0-9页]+ 或第[0-9]页{1,}
在您的示例/page123/xyz/page456中,您可能希望匹配所有出现的情况,因此不要忘记g或全局修饰符。

您几乎找到了它。只需使用+而不是*即可,因为这将强制进行后面有数字的匹配

键入该表达式的另一种方法是

/page[0-9]+

请注意/,这会很有帮助,因为如果没有它,您可能会得到一个类似notApage123的匹配项,您几乎可以得到它。只需使用+而不是*即可,因为这将强制进行后面有数字的匹配

键入该表达式的另一种方法是

/page[0-9]+

注意/,这会很有帮助,因为如果没有它,你可能会得到一个类似notApage123的比赛,叹气,你赢了3秒。我向你的打字能力低头。唉,你赢了3秒。我向你的打字能力低头。@Isaac你说它什么意思都比不上?它不会匹配除第[0-9]*页或加号以外的任何结尾,但会匹配以此模式结尾的字符串,并考虑到OP已写入,如果在数字之后出现任何内容,则应停止。我想这正是他/她想要的。例如:使用字符串…/page733/xyz,OP想要page733。OP所指的停止是,只抓取页面和以下数字,然后停止我很好奇OP/page123/xyz/page456在本例中想要的匹配是什么。OP可以实现全局修饰符来匹配所有发生的情况,而这可能是真的,由于问题上有和ASP.NET标记,OP编写的示例看起来像URL,我猜他正在进行URL重写,在这种情况下,他肯定不想匹配多个事件。我们需要OP提供更多信息才能继续,但由于我写了很多URL重写,我了解到在末尾加$几乎是URL重写的一个要求。@Isaac你说它什么意思?它不会匹配除第[0-9]*页或加号以外的任何结尾,但会匹配以此模式结尾的字符串,并考虑到OP已写入,如果在数字之后出现任何内容,则应停止。我想这正是他/她想要的
OP需要733页。OP所指的停止是,只抓取页面和以下数字,然后停止我很好奇OP/page123/xyz/page456在本例中想要的匹配是什么。OP可以实现全局修饰符来匹配所有发生的情况,而这可能是真的,由于问题上有和ASP.NET标记,OP编写的示例看起来像URL,我猜他正在进行URL重写,在这种情况下,他肯定不想匹配多个事件。我们需要OP提供更多信息才能继续,但是我已经写了很多URL重写,我了解到在末尾加$几乎是URL重写的一个要求。记住,c,这家伙会被试图逃逸的c弄糊涂\d请记住,c,这家伙会被试图逃逸的c弄糊涂\d所有答案都指出,您可能希望使用+而不是*,但我们还需要更多地了解您想要实现的目标。您正在进行URL重写或匹配吗?您希望获得多个匹配项还是仅获得最后一个匹配项?你到底想做什么?我只想要一个匹配项-如果url合法地有多个匹配项,这意味着在我这方面出了问题,因为url应该只出现一次page123。在任何情况下,似乎使用+解决了我的问题。感谢所有提供答案的人。如果可以的话,我会把它们都标记为答案。正如所有答案所指出的,您可能想使用+而不是*,但我们还需要更多地了解您想要实现的目标。您正在进行URL重写或匹配吗?您希望获得多个匹配项还是仅获得最后一个匹配项?你到底想做什么?我只想要一个匹配项-如果url合法地有多个匹配项,这意味着在我这方面出了问题,因为url应该只出现一次page123。在任何情况下,似乎使用+解决了我的问题。感谢所有提供答案的人。如果我可以的话,我会把它们都标记为答案。