PHP определяет, заключено ли слово в кавычки

#php

#php

Вопрос:

Как мне заставить PHP определить, находится ли слово в кавычках?

Пример: Привет, «меня» зовут…

Как мне узнать, заключено ли слово my в кавычки (двойные или одинарные)?

 <?php
if(isset($_POST['sub'])) {
    $str = $_POST['textarea'];
    // determine if the word "my" is in quotation marks from the $str
}
 

Комментарии:

1. Здесь нам нужно больше контекста. Откуда берется эта строка?

2. @RussJ, строка поступает из текстовой области

3. Можете ли вы опубликовать код для этой текстовой области?

4. @RussJ, прямо сейчас у меня есть только PHP, вызывающий значение textarea после отправки post

5. Пожалуйста, опубликуйте свой код, в противном случае этот вопрос, скорее всего, будет закрыт.

Ответ №1:

Вам нужно регулярное выражение, которое может определять слово, которое вы ищете, заключенное в согласованные кавычки (один и тот же символ кавычки с каждой стороны).

Что-то вроде этого

 $word = 'my';
$quoteCharacters = ['"', "'"];
$expression = sprintf('/([%s])%s1/i',
    implode($quoteCharacters), preg_quote($word));
// produces something like /(["'])my1/i

if (preg_match($expression, $str)) {
    echo "Found '$word' quoted";
}
 

Это 1 обратная ссылка, соответствующая тому же символу кавычки, который был найден ранее.

Демонстрация ~ https://3v4l.org/juHIi