Подскажите регулярное выражение для поиска строки

PN
На сайте с 22.08.2012
Offline
103
581

Коллеги-программисты, возникла задача поиска строк в исходном коде PHP. Проблема в экранирующих символах. К примеру, строки могут быть такими:

some code "this is string \\\\"

some code "this is string \\\" it is string too"

Можно ли искать их регулярным выражением или проще посимвольно просматривать?

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
DV
На сайте с 01.05.2010
Offline
644
#1

$text = preg_replace('%(.*?)(this is string (\\\\*))[^(//)]*%', '$2', $text);
VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
PN
На сайте с 22.08.2012
Offline
103
#2
DenisVS:
$text = preg_replace('%(.*?)(this is string (\\\\*))[^(//)]*%', '$2', $text);

в строке не обязательно есть слова this is string. мне нужно выражение для поиска абсолютно любой строки, заключенной в кавычки. Но выражение типа /"([^"]*)"/U не подходит, потому что есть экранирование. Notepad++, например, каким-то образом выделяет строку в т.ч. и с экранирующими символами. Т.е. две проблемы:

1. Кавычка может быть заэкранирована так: \", и тогда это не конец строки.

2. Но и символ экранирования может быть заэкранирован: \\

Т.е. кавычка является концом строки только, если перед ней четное количество символов \ - 0, 2, 4, 6, 8 и т.д.

J
На сайте с 20.02.2014
Offline
120
jkm
#3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий