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);
}