尝试匹配以下内容:
wrs/time/5/10
或wrs/time/5.2/10.55
或整数之间的任何内容,浮动最多两个捕获组的可选小数位。
一直在尝试以下哪个适用于一个号码但不适用于两个群组:\d{0,2}(\.\d{1,2})?
完整路线尝试:
$route['wrs/time/(\d{0,2}(\.\d{1,2})?)/(\d{0,2}(\.\d{1,2})?)'] = 'wrs/trange/$1/$2';
任何非常感谢的帮助
答案 0 :(得分:1)
您当前的正则表达式有效,但将完整的数字放入第1组和第3组(第2组和第4组中也包含小数)。
您可以通过将重写更改为'wrs/trange/$1/$3'
来解决此问题。
或者,您可以将您的正则表达式略微更改为:
wrs/time/(\d{0,2}(?:\.\d{1,2})?)/(\d{0,2}(?:\.\d{1,2})?)
通过将小数部分周围的(...)
更改为(?:...)
,您说不会在自己的组中捕获小数,因此您的数字将与您期望的一样在第1组和第2组。
这通常很有用,因为在你的例子中你需要在括号中对某些东西进行分组,这样你就可以使用?
使整个事物成为可选的,但你实际上并不希望那部分是一个捕获基。