Find the position of the first occurring of any number in string (php)
有人能帮我找到字符串中任何数字第一次出现的位置的算法吗?
我在网上找到的代码不起作用:
1 2 3 4 5 | function my_ofset($text){ preg_match('/^[^\-]*-\D*/', $text, $m); return strlen($m[0]); } echo my_ofset('[HorribleSubs] Bleach - 311 [720p].mkv'); |
1 2 3 4 5 6 7 8 | function my_offset($text) { preg_match('/\d/', $text, $m, PREG_OFFSET_CAPTURE); if (sizeof($m)) return $m[0][1]; // 24 in your example // return anything you need for the case when there's no numbers in the string return strlen($text); } |
1 2 3 4 | function my_ofset($text){ preg_match('/^\D*(?=\d)/', $text, $m); return isset($m[0]) ? strlen($m[0]) : false; } |
应该能解决这个问题。最初的代码要求在第一个数字之前有一个
当使用时,内置的php函数
1 |
实例:
1 2 3 |
高温高压
我可以做正则表达式,但我必须进入一个改变的状态记住它在我编码之后会做什么。
下面是一个简单的PHP函数,您可以使用…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function findFirstNum($myString) { $slength = strlen($myString); for ($index = 0; $index < $slength; $index++) { $char = substr($myString, $index, 1); if (is_numeric($char)) { return $index; } } return 0; //no numbers found } |