Как я могу соответствовать дважды заключенным в кавычки строкам завершенным символам двойной кавычки?

Я пробовал это, и он работал.

app.get('/', function (req, res) {
    res.sendFile('public/index.html', { root: __dirname });
});
31
задан brian d foy 27 January 2009 в 18:03
поделиться

5 ответов

Как насчет этого?

/"([^\\"]|\\\\|\\")*"/

нуль соответствий или больше символов, которые не являются наклонными чертами или кавычками ИЛИ двумя наклонными чертами ИЛИ наклонной чертой затем кавычка

26
ответ дан 27 November 2019 в 21:43
поделиться

/"(?:[^\\"]|\\.)*"/

Это - почти то же как ответ Cal, но имеет преимущество соответствующих строк, содержащих управляющие коды такой как \n.

Эти ?: символы там для предотвращения содержавшего выражения, сохраняемого как обратная ссылка, но они могут быть удалены.

41
ответ дан 27 November 2019 в 21:43
поделиться

Универсальное решение (соответствие всем backslashed символам):

/ \A "               # Start of string and opening quote
  (?:                #  Start group
    [^\\"]           #   Anything but a backslash or a quote
    |                #  or
    \\.              #   Backslash and anything
  )*                 # End of group
  " \z               # Closing quote and end of string
  /xms
9
ответ дан 27 November 2019 в 21:43
поделиться

См. текст:: Сбалансированный . Это лучше, чем заново изобретают колесо. Используйте gen_delimited_pat, чтобы видеть, что шаблон результата и учиться формирует его.

5
ответ дан 27 November 2019 в 21:43
поделиться

Regexp :: Common - это еще один полезный инструмент для знания. Он содержит Regexps для многих общих случаев, включенные цитируемые строки:

use Regexp::Common;

my $str = '" this is a \" quoted string"';
if ($str =~ $RE{quoted}) {
  # do something
}
1
ответ дан 27 November 2019 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: