正则表达式不以0开头

时间:2012-09-11 08:21:17

标签: regex ssi

我有一些网址

folder/t_01_class.shtml

带序号

folder/t_02_class.shtml
folder/t_03_class.shtml
folder/t_10_class.shtml
folder/t_11_class.shtml
folder/t_12_class.shtml
folder/t_23_class.shtml

我需要使用不考虑第一个零的正则表达式来变量,因此结果应该是

<!--#set var="page" value="2"-->
<!--#set var="page" value="3"-->
<!--#set var="page" value="10"-->
<!--#set var="page" value="11"-->
<!--#set var="page" value="12"-->
<!--#set var="page" value="23"-->

任何建议

由于

2 个答案:

答案 0 :(得分:2)

如果正则表达式针对URL中请求的整个页面名称,我建议使用/t_0*([1-9]\d*)_/行的内容,然后检索编号的组1。

澄清正则表达式:

每一端的

//都是表示正则表达式本身的分隔符,它们不是匹配的有效部分。

t_将匹配页面的开头

0*将匹配任何前导0

[1-9]\d*将匹配从1-9开始的任何数字,0个或更多个后续数字(\d相当于[0-9]*等于{{1} }表示“0或更多”)

上面的

\d将使这个编号为一组,允许您检索匹配

()最后是确保数字匹配完成

答案 1 :(得分:0)

[1-9][0-9]*

将匹配任何大于零的整数,删除前导零。