Я написал регулярное выражение, но оно не работает, как я ожидаю.Посмотрите, пожалуйста
preg_match_all("/([\.\:]?)(.{0,65}?[^\s]*".preg_quote($word)."[^\s]*.{0,65})/siu",$content,$matched);
[^\s]*".preg_quote($word)."[^\s]
//
эта часть соответствует целому слову, если оно содержит ключевое слово, например, оно соответствует keyword если я ищу ключевое слово wor .
.{0,65}?[^\s]*".preg_quote($word)."[^\s]*.{0,65}
здесь я получаю до 65 символов до и после ключевого слова, т.е.я получу
много слов здесь ключевое слово и другие слова здесь
А теперь, в чем проблема.Я пытаюсь сопоставить предложение с начала, если в {65} символах есть какой-либо из символов [.:]
, если у меня есть структура sach - word1 word2 . {меньше 65символ здесь} ключевое слово {другие символы здесь}
я ожидаю, тогда, если я напишу ([\.\:]?)(.{0,65}?[^\s]*".preg_quote($word)."[^\s]*.{0,65})
, это будет соответствовать .{less then 65 character here} keyword {65 characters}
, но это не так.часть [\.\:]?
не имеет никакого влияния на регулярные выражения.он соответствует всем {65} символам.
мне нужно сопоставить предложение с самого начала, если начало предложения в пределах 65 символов перед ключевым словом