Php 如何将特定字符串与preg_match匹配?
我想在字符串Php 如何将特定字符串与preg_match匹配?,php,regex,Php,Regex,我想在字符串“$str=slianka Under-19s 235/5*v India Under-19s 503/7”中匹配以下模式India。它应该返回false,因为不是印度,而是存在印度19岁以下儿童?如果只有India存在,且未满19岁,如何使用regex执行此操作。请帮忙 仅当存在india时,它才应匹配;如果存在india under-19时,它应失败 我已经为此编写了以下代码,但它总是匹配的- $str="Sri Lanka Under-19s 235/5 * v India U
“$str=slianka Under-19s 235/5*v India Under-19s 503/7”中匹配以下模式India
。它应该返回false,因为不是印度
,而是存在印度19岁以下儿童
?如果只有India
存在,且未满19岁,如何使用regex执行此操作。请帮忙
仅当存在india
时,它才应匹配;如果存在india under-19
时,它应失败
我已经为此编写了以下代码,但它总是匹配的-
$str="Sri Lanka Under-19s 235/5 * v India Under-19s 503/7";
$team="#India\s(?!("Under-19s"))#";
preg_match($team,$str,$matches);
我的解决方案:
$text = "Sri Lanka Under-19s 235/5 * v India Under-19s 503/7";
$check = explode(" ", strstr($text, "India"));
if( $check[1] == "Under-19s" ){
// If is in text
}else{
// If not
}
我的解决方案:
$text = "Sri Lanka Under-19s 235/5 * v India Under-19s 503/7";
$check = explode(" ", strstr($text, "India"));
if( $check[1] == "Under-19s" ){
// If is in text
}else{
// If not
}
匹配regexp中缺少的字符串有点难看。这更清楚一点:
$india_regexp = '/india/i';
$under19_regexp = '/under-19s/i';
$match = preg_match(india_regexp, $str) && ! preg_match(under19_regexp, $str);
匹配regexp中缺少的字符串有点难看。这更清楚一点:
$india_regexp = '/india/i';
$under19_regexp = '/under-19s/i';
$match = preg_match(india_regexp, $str) && ! preg_match(under19_regexp, $str);
这符合您的要求:
<?php
$str="Sri Lanka Under-19s 235/5 * v India Under-19s 503/7";
$team="/India\s(?!Under-19s)/";
preg_match($team,$str,$matches);
exit;
?>
这会满足您的要求:
<?php
$str="Sri Lanka Under-19s 235/5 * v India Under-19s 503/7";
$team="/India\s(?!Under-19s)/";
preg_match($team,$str,$matches);
exit;
?>
假设在印度和19岁以下的正则表达式之间有一个空格来检查是否存在这种情况,则可能是错误的
/India\s(?!Under)/
把所有的都放在代码中
$string = "Sri Lanka Under-19s 235/5 * v India Under-19s 503/7";
$pattern="/India\s(?!Under)/";
preg_match($pattern,$string,$match);
if(count($match)==0){
//What we need
}else{
//Under-19 is present
}
假设在India和Under-19s正则表达式之间有一个空格来检查是否存在这种情况,这将是一个错误
/India\s(?!Under)/
把所有的都放在代码中
$string = "Sri Lanka Under-19s 235/5 * v India Under-19s 503/7";
$pattern="/India\s(?!Under)/";
preg_match($pattern,$string,$match);
if(count($match)==0){
//What we need
}else{
//Under-19 is present
}