如何将特定字符串与preg_match匹配?

时间:2013-07-25 19:51:40

标签: php regex

我希望在字符串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}}

4 个答案:

答案 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
  }
相关问题