Получение полезных слов из списка слов - PullRequest
0 голосов
/ 09 августа 2011

У меня есть следующие строки:

Over/Under 1.5
Over/Under 2.5
Over/Under 3.5
Over/Under 4.5
This is not Over/Under 1.5
Other text

Для меня действительными текстами являются следующие

Over/Under 1.5
Over/Under 2.5
Over/Under 3.5
Over/Under 4.5
Over/Under X.X

, где X.X - это число.

Как я могу принять решение, является ли строка верной или нет?

Ответы [ 4 ]

1 голос
/ 09 августа 2011

Используйте регулярное выражение.Я сам не очень хорош в них, но у меня это сработало:

$ t

mp  = array
(
    "Over/Under 1.5",
    "Over/Under 2.5",
    "Over/Under 3.5",
    "Over/Under 4.5",
    "Over/Under 5.5",
    "fdgdfgdf",
    "Other"
);

$tmp2 = array_filter($tmp, function($element) { return preg_match('(Over\/Under [0-9]\.[0-9])', $element); });
print_r($tmp2);

http://php.net/manual/en/function.preg-match.php для дополнительной информации

1 голос
/ 09 августа 2011

Проверьте, соответствует ли оно регулярному выражению

Over/Under [0-9]*.[0-9]*

(если оно больше или меньше, выберите (Over|Under)

1 голос
/ 09 августа 2011

Совпадает ли This es not Over/Under 1.5? Если так:

$words = array('Over/Under 1.5',
'Over/Under 2.5',
'Over/Under 3.5',
'Over/Under 4.5',
'This es not Over/Under 1.5',
'Other text');

foreach ($words as $word) {
  if (preg_match('#.*Over/Under \d\.\d.*#', $word)) {
    echo "Match $word\n";
  }
}

Если нет, измените preg_match на

preg_match('#^Over/Under \d\.\d$#', $word);

Как пишет @Tokk, если строка должна совпадать на Over OR Under, то вам нужно изменить на OR - |

preg_match('#^(Over|Under) \d\.\d$#', $word);
1 голос
/ 09 августа 2011
if(preg_match('/Over\/Under \d\.\d/', $str)) {

}
...