我希望在字符串India
中匹配以下模式"$str=Sri Lanka Under-19s 235/5 * v India Under-19s 503/7 "
。它应该返回false,因为India
代替India Under-19s
而不是India
?如果只有india
而不是19岁以下如何使用正则表达式执行此操作。请帮忙。
仅当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);
存在则应该失败。
我为此编写了以下代码,但始终匹配 -
{{1}}
答案 0 :(得分:2)
这就是你所要求的:
<?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;
?>
答案 1 :(得分:1)
我的解决方案:
$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
}
答案 2 :(得分:1)
匹配正则表达式中缺少字符串有点难看。这有点清楚:
$india_regexp = '/india/i';
$under19_regexp = '/under-19s/i';
$match = preg_match(india_regexp, $str) && ! preg_match(under19_regexp, $str);
答案 3 :(得分:1)
假设印度和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
}