Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查一个字符串是否是另一个字符串的子字符串,第二个字符串的其他字符是否为下划线+;号码?_Php_Regex_Substring - Fatal编程技术网

Php 如何检查一个字符串是否是另一个字符串的子字符串,第二个字符串的其他字符是否为下划线+;号码?

Php 如何检查一个字符串是否是另一个字符串的子字符串,第二个字符串的其他字符是否为下划线+;号码?,php,regex,substring,Php,Regex,Substring,我有两个字符串变量。 例如 $title2可以与$title相同,也可以是$title.'''.number 目前我确实: $sametitle = strpos($title2, $title); if(!($sametitle === 0)) { 如果$title!=$title2我需要检查$title是否是$title2的子字符串,以及$title是否位于$title2的开头,并且$title2字符串的其余部分是否与下划线+数字匹配,以便在这种情况下: $title = 'st'; 它

我有两个字符串变量。 例如

$title2
可以与
$title
相同,也可以是
$title.'''.number

目前我确实:

$sametitle = strpos($title2, $title);
if(!($sametitle === 0)) {
如果
$title!=$title2
我需要检查
$title
是否是
$title2
的子字符串,以及
$title
是否位于
$title2
的开头,并且
$title2
字符串的其余部分是否与下划线+数字匹配,以便在这种情况下:

$title = 'st';
它不会进入if

我想我可以用preg_match来做,但是我不太懂正则表达式,所以我不知道怎么做


先谢谢你!:)

您可以使用此预匹配:

preg_match('/^' . preg_quote($title, '/') . '(_\d+)?$/', $title2); 
您可以这样做:

if (preg_match('~\Q' . $title . '\E_[0-9]+~', $title2, $match)) {
    print_r($match);
}
其中
\Q..\E
允许在
$title
中使用特殊字符

if (preg_match('~\Q' . $title . '\E_[0-9]+~', $title2, $match)) {
    print_r($match);
}