7

我有这个字符串

@[123:peterwateber] 你好 095032sdfsdf!@[589:zzzz]

我想得到123 和 589你怎么在 PHP 中使用正则表达式或其他东西?

注意:peterwateber 和 zzzz 只是示例。应考虑任何随机字符串

4

3 回答 3

7

不要忘记前瞻,所以你不匹配095032

$foo = '@[123:peterwateber] hello there 095032sdfsdf! @[589:zzzz]';
preg_match_all("/[0-9]+(?=:)/", $foo, $matches);
var_dump($matches[0]); // array(2) { [0]=> string(3) "123" [1]=> string(3) "589" }
于 2012-05-06T05:35:07.343 回答
2

以下正则表达式将连续提取一个或多个数字字符:

preg_match_all('#\d+#', $subject, $results);
print_r($results);
于 2012-05-06T05:27:39.503 回答
1

有一个函数叫做 preg_match_all

第一个参数接受正则表达式 - 以下示例显示 '匹配至少一个数字,后跟任意数量的数字。这将匹配数字。

第二个参数是字符串本身,您要从中提取的主题

第三个是一个数组,所有匹配的元素都将位于其中。所以第一个元素是 123,第二个是 589,依此类推

    preg_match_all("/[0-9]+/", $string, $matches);
于 2012-05-06T05:27:53.533 回答