Php 如何使用正则表达式获取字符串的一部分?

Php 如何使用正则表达式获取字符串的一部分?,php,regex,preg-match,Php,Regex,Preg Match,这是我的字符串:0425235/somethingelse/ 我只需要“0425235” (在“tt”和“/”之间) 使用以下各项进行测试:http://rubular.com/ #http://www\.imdb\.com/title/tt(\d+)/# 或 或 如果找不到您的模式,$id将为NULL 如果找不到您的模式,$id将是NULL简单而完美;) 再见 简单而完美;) 再见 然后尝试稍微修改的模式:'/\/tt(\d+)/i'。$正在标记字符串的结尾,因此它对您不起作用,如果

这是我的字符串:0425235/somethingelse/

我只需要“0425235” (在“tt”和“/”之间)

使用以下各项进行测试:http://rubular.com/

#http://www\.imdb\.com/title/tt(\d+)/#

如果找不到您的模式,
$id
将为
NULL

如果找不到您的模式,
$id
将是
NULL

简单而完美;)


再见

简单而完美;)



再见

然后尝试稍微修改的模式:
'/\/tt(\d+)/i'
$
正在标记字符串的结尾,因此它对您不起作用,如果您将其省略,这将得到
/tt
后面的第一个数字。如果找到它,它将在
$match[1]
中。好的,伙计,现在用这个regexp/\/path\/([a-z]+([\d]+)+\/?/i来测试:
'/\/tt(\d+)/i'
$
正在标记字符串的结尾,因此它对您不起作用,如果您将其省略,这将得到
/tt
后面的第一个数字。如果找到它,它将在
$match[1]
中。好的,伙计,现在用这个regexp/\/path\/([a-z]+([\d]+)+\/?/i进行测试
/http:\/\/[\w+-_\.]+\/path\/tt(\d+)\//
~http://[\w+-_\.]+/path/tt(\d+)/~
$url = 'http://www.something.com/path/tt0425235/';

list($id) = preg_split('~^.*/tt(\d+)/$~', $url, 2, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY) + array(NULL);
<?php
$match = array();
$url = 'http://www.something.com/path/tt0425235/somethingelse/bla/bla/bla/bla/?bla=bla';
preg_match( '/\/path\/([a-z]+([\d]+))+\/?/i' , $url , $match );
print_r( $match );
?>