обнаружить цитату в строке - PullRequest
0 голосов
/ 07 декабря 2010

Я использую php и регулярные выражения, чтобы попытаться обнаружить цитату.

Я бы хотел, чтобы он находил совпадения только в том случае, если он находит цитату в строке

HELLO

Не должен найти совпадений

"HELLO" 

Должен найти совпадение

"HELLO

Тем не менее должен найти совпадение

Ответы [ 6 ]

4 голосов
/ 07 декабря 2010

Регулярное выражение - это просто символ кавычки.

echo preg_match('/"/', $string);

Возвращает 0 для HELLO, 1 для "HELLO" и 1 для "HELLO

3 голосов
/ 07 декабря 2010

Вы можете использовать регулярное выражение с preg_match , которое проверяет наличие любой двойной кавычки в $ thestring:

if(preg_match('"', $thestring)) { ... }

Но может быть быстрее использовать функцию strpos вместо:

if(strpos($thestring, '"') !== false) { ... }

Код внутри операторов if будет выполняться, только если найдена двойная кавычка. Мои примеры кода не возвращают, какой текст был заключен в кавычки, хотя вы, безусловно, можете сделать это с небольшими изменениями.

1 голос
/ 07 декабря 2010

Не так сложно, ИМХО :) Я полагаю, вы просто пытаетесь определить, есть ли в данной строке кавычка или нет, верно? Так что тогда это может быть сделано

preg_match('/"/',$string)

или более эффективно

strpos($string,'"') || $string == '"'
1 голос
/ 07 декабря 2010

Использование "(.*?)(\n|\r|$|").

Пример:

http://img221.imageshack.us/img221/2994/screenshot2z0.png

РЕДАКТИРОВАНИЕ : из ваших комментариев я понимаю, что вам не нужноэтот;Вам нужен ответ Колина О'Делла (а именно функция strpos).Тем не менее, я оставляю это здесь на случай, если кому-то еще это понадобится.

0 голосов
/ 31 июля 2018

Использование (trim($string, '"') !== $string)

или (trim($string, '"\'') !== $string) для цитаты или одинарной цитаты

0 голосов
/ 07 декабря 2010
["]*HELLO["]* 

будет соответствовать Привет с или без кавычек с любой стороны

Или вы можете использовать

"{0,1}HELLO"{0,1}
...