Получить неправильную дату - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь извлечь дату из гигантской текстовой строки, когда встречается определенное слово.Итак, в текстовом поле ниже, где написано «полис», я хочу указать дату 29/7/2017

. Таким образом, поле шаблона - это конкретное слово, которое я употребляю в данном случае «полис», субъект - это массив.который содержит все текстовое поле.

22/10/2013 ånger, ska bet 6,428:-, 
bet 6428, 2109+2016+2303 inlagt
23/5/2014 bl 26/5, medd inga avgifter) 
29/7/2014 spelmissbruk 
29/7/2014 polis
29/12/2014 föreslår godkänn
27/4/2016 Föreslår godkänn 

Вот что я попробовал:

$subject = $row['anteckning'];
$pattern = $wordToFind;
preg_match("/$pattern/",$subject,$matchWord);
//print_r($matchWord);

if($matchWord[0] == $pattern) {
    $test1 = strstr($subject, $matchWord[0]);
    $testword = substr($test1, 0,8);
    echo $testword;                    
}

Моя проблема в том, что я продолжаю получать первое свидание 22/10/2013.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Вы можете использовать .* в качестве символа подстановки с каждой стороны строки в preg_match_all для захвата всех в одном.

Я использую i, чтобы сделать его нечувствительным к регистру, чтобы убедиться, что он захватывает polis, Polis, POLISи так далее.

РЕДАКТИРОВАТЬ: я вижу, теперь вы хотите только даты.В регулярное выражение добавлен захват дат.
$ match [1] будет содержать только даты, а $ match [0] будет содержать полную строку.

preg_match_all('/(\d{1,2}\/\d{1,2}\/\d{4}).*polis.*/i', $str, $matches);

var_dump($matches);

output: (мой пример)

array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(15) "29/7/2014 polis"
    [1]=>
    string(15) "28/4/2016 POLIS"
  }
  [1]=>
  array(2) {
    [0]=>
    string(9) "29/7/2014"
    [1]=>
    string(9) "28/4/2016"
  }
}

https://3v4l.org/Bo7ON

0 голосов
/ 14 декабря 2018
 preg_match_all("/$pattern/",$subject,$matchWord);

Вы используете preg_match, поэтому получите первое единственное найденное значение.

Конечно, вам придется внести некоторые изменения в ваш код, но вы получите все значения на основе preg_match_all функция, так что вы будете обрабатывать их, как вам нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...