Вытягиваем строку, ограниченную кавычками

Регулярное выражение, извлекающее из текста участок, ограниченный кавычками, не реагируя на кавычки закрытые бекслешем.
(?s)(?<!\)"((?:(?<=\)"|[^"]++)*)(?<!\)"

Поблагодарить автора

4 Responses to Вытягиваем строку, ограниченную кавычками

  1. Я пробую использовать выражение в PHP, но оно дает ошибку.

    if (preg_match ((?s)(?<!\)"((?:(?<=\)"|[^"]++)*)(?<!\)", $exp, $ok)) {

    или так

    if (preg_match ("(?s)(?<!\)"((?:(?<=\)"|[^"]++)*)(?<!\)", $exp, $ok)) {

    Еще у меня выражение усложняется тем, что кавычки в тесте могут быть как одинарные, так и двойные...

    aaaa "aaaaa" aaaaa

    aaaa 'aaaaa' aaaaa

    Пожалуйста помогите с решением

  2. $str="aaaa \"str1\" aaaaa aaaa 'str2' aaaaa";

    $pattern = '/[\'"](.*?)["\']/';

    preg_match_all ($pattern, $str, $matches);

    print_r ($matches);

    Нисал на коленках, поэтому пришлось пожертвовать проверкой на наличие бекслешей и использование одинарных кавычек внутри двойных и наоборот.

Оставить комментарий

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>